Pemeriksaan pra-penerbangan adalah tindakan pencegahan untuk membantu mengidentifikasi masalah sebelum Anda memulai operasi cluster utama, seperti membuat atau mengupgrade cluster. Saat pemeriksaan ini berjalan secara otomatis sebelum operasi, tidak ada perubahan yang dilakukan pada cluster Anda kecuali jika semua pemeriksaan pra-penerbangan lulus. Anda juga dapat menjalankan pemeriksaan pra-penerbangan sesuai permintaan.
Dokumen ini menjelaskan setiap pemeriksaan, dalam keadaan apa pemeriksaan berjalan secara otomatis, cara dan waktu untuk menjalankannya secara manual, serta cara menafsirkan hasilnya.
Di Google Distributed Cloud, Anda dapat menjalankan pemeriksaan pra-penerbangan untuk berbagai situasi:
Google Distributed Cloud menjalankan pemeriksaan pra-penerbangan saat Anda membuat atau mengupgrade cluster dan resource node pool dengan
bmctl
. Jika pemeriksaan gagal, tidak ada perubahan yang dilakukan. Anda juga dapat melewati pemeriksaan ini, atau menjalankannya secara eksplisit.Google Distributed Cloud juga menjalankan pemeriksaan pra-peluncuran internal saat admin atau cluster hybrid membuat atau memperbarui resource Kubernetes di cluster pengguna. Pemeriksaan dijalankan sebelum perubahan diterapkan ke cluster pengguna yang terpengaruh. Jika pemeriksaan gagal, tidak ada perubahan yang dilakukan.
PreflightCheck
resource kustom
Saat pemeriksaan pra-penerbangan berjalan, Google Distributed Cloud akan membuat resource kustom PreflightCheck
. PreflightCheck
resource kustom bersifat persisten dan memberikan catatan aktivitas dan hasil pemeriksaan awal.
Untuk mengambil resource kustom PreflightCheck
:
Dapatkan daftar pemeriksaan preflight yang telah dijalankan untuk cluster tertentu:
kubectl get preflightchecks --kubeconfig ADMIN_KUBECONFIG --namespace CLUSTER_NAMESPACE
Ganti kode berikut:
ADMIN_KUBECONFIG
: jalur file kubeconfig cluster admin.CLUSTER_NAMESPACE
: namespace cluster.
Respons mencantumkan resource menurut namespace. Anda dapat menjalankan
kubectl get preflightchecks
di semua namespace untuk mendapatkan daftar lengkap. Untuk setiap resource, respons menampilkan usia resource dan apakah pemeriksaan awal lulus atau tidak. Contoh respons berikut menampilkan resourcePreflightCheck
untuk namespacecluster-test-admin001
.NAMESPACE NAME PASS AGE cluster-test-admin001 test-admin001 true 52d cluster-test-admin001 test-admin001jkm4q true 52d cluster-test-admin001 test-admin001k79t7 true 6d20h cluster-test-admin001 upgrade-cluster-20231106-222746 true 6d20h
Ambil detail untuk resource kustom
PreflightCheck
tertentu:kubectl describe preflightchecks --kubeconfig ADMIN_KUBECONFIG --namespace CLUSTER_NAMESPACE
Ganti kode berikut:
ADMIN_KUBECONFIG
: jalur file kubeconfig cluster admin.CLUSTER_NAMESPACE
: namespace cluster.
Contoh respons perintah berikut menunjukkan resource
PreflightCheck
untuk pemeriksaan awal yang berhasil yang dijalankan sebagai bagian dari pembuatan cluster:Name: create-cluster-20230922-175006 Namespace: cluster-test-user001 Labels: <none> Annotations: <none> API Version: baremetal.cluster.gke.io/v1 Kind: PreflightCheck Metadata: Creation Timestamp: 2023-09-22T17:50:11Z Generation: 1 Resource Version: 6502800 UID: 917daf64-963d-44b4-a1f9-c54972a39191 Spec: Check Image Version: latest Config YAML: --- apiVersion: v1 kind: Namespace metadata: name: cluster-test-user --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: test-user001 namespace: cluster-test-user001 spec: type: user profile: default anthosBareMetalVersion: 1.16.0 gkeConnect: projectID: clusters-project controlPlane: nodePoolSpec: nodes: - address: 192.0.2.53 ... --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-test-user001 spec: clusterName: test-user001 nodes: - address: 192.0.2.54 ... Status: Checks: 192.0.2.53: Job UID: d0b5dc1f-9d39-4cc8-b3d2-0841212f7f8c Message: Pass: true 192.0.2.53-gcp: Job UID: b4d96ce5-0d4e-4e3c-97db-6317e0c15fc8 Message: Pass: true 192.0.2.54: Job UID: b67cf195-3951-46ad-b91c-0d79025cfc0a Message: Pass: true 192.0.2.54-gcp: Job UID: aed509e2-4bf7-44c4-bfa0-8147ef8ea74e Message: Pass: true Gcp: Job UID: ac479ac4-e1c4-4681-9f2b-5773069bf6ae Message: Pass: true Node - Network: Job UID: 8a57c4ee-ad17-4560-8809-b117c871ad5d Message: Pass: true Pod - Cidr: Message: Pass: true Cluster Spec: Anthos Bare Metal Version: 1.16.0 Bypass Preflight Check: false Cluster Network: Bundled Ingress: true Pods: Cidr Blocks: 10.0.0.0/16 Services: Cidr Blocks: 10.96.0.0/20 ... Completion Time: 2023-09-22T17:51:22Z Conditions: Last Transition Time: 2023-10-02T23:59:06Z Observed Generation: 1 Reason: Reconciling Status: True Type: Reconciling Node Pool Specs: node-pool-1: Cluster Name: test-user001 Nodes: Address: 192.0.2.54 ... Pass: true Start Time: 2023-09-22T17:50:32Z Events: <none>
Di resource kustom
PreflightCheck
sebelumnya, bagianStatus
berisi informasi berikut:- Bagian
Checks
mencantumkan setiap pemeriksaan awal yang dijalankan dan apakah pemeriksaan tersebut berhasil atau tidak. Dalam contoh ini, pemeriksaan berikut dijalankan:192.0.2.53
dan192.0.2.54
: pemeriksaan node (konfigurasi OS, resource, dan setelan software) untuk komputer dengan alamat IP192.0.2.53
dan192.0.2.54
.192.0.2.53-gpc
dan192.0.2.54-gcp
:pemeriksaan konektivitas Google Cloud (akses Google API dan Artifact Registry) untuk mesin dengan alamat IP192.0.2.53
dan192.0.2.54
.Gcp
: Google Cloud pemeriksaan konektivitas untuk cluster.Node - Network
: Pemeriksaan jaringan (konektivitas, operasietcd
, akses VIP, dan pengikatan port) untuk cluster.Pod - Cidr
: Pemeriksaan alamat IP Pod untuk alamat yang tumpang-tindih untuk cluster.
- Bagian
Cluster Spec
menampilkan konfigurasi cluster. - Kolom
Pass
menampilkantrue
, yang menunjukkan bahwa pemeriksaan pra-penerbangan berhasil secara keseluruhan.
Log pemeriksaan preflight
Saat pemeriksaan awal dijalankan sebagai hasil dari perintah bmctl
, seperti bmctl check
preflight
, Google Distributed Cloud akan membuat file log. Berikut yang dihasilkan dan tempatnya:
Log pemeriksaan pra-penerbangan dibuat di direktori dengan pola penamaan berikut
preflight-TIMESTAMP
.Direktori pra-penerbangan ini dibuat di direktori
log
untuk cluster di ruang kerjabmctl
. Secara default, jalur direktorilog
adalahbmctl-workspace/CLUSTER_NAME/log
.Log pra-penerbangan terdiri dari file berikut:
File log untuk pemeriksaan mesin node, satu untuk setiap node cluster. File log ini diberi nama menggunakan alamat IP node. Misalnya, nama file mungkin
192.0.2.53
.File log untuk pemeriksaan akses Google Cloud , satu untuk setiap node cluster. File log ini diberi nama menggunakan alamat IP node. Misalnya, nama file mungkin
192.0.2.53-gcp
.File log untuk pemeriksaan akses cluster Google Cloud , yang diberi nama
gcp
.File log untuk pemeriksaan jaringan node, yang diberi nama
node-network
.
Jika pemeriksaan pra-penerbangan gagal, file log ini dapat membantu Anda mengidentifikasi dan memecahkan masalah.
Pemeriksaan awal untuk pembuatan cluster
Saat Anda membuat cluster, Google Distributed Cloud akan otomatis menjalankan pemeriksaan pra-penerbangan sebelum perubahan dilakukan.
Apa yang diperiksa?
Pemeriksaan awal untuk penginstalan memeriksa hal berikut:
Pemeriksaan mesin node:
Komputer cluster menggunakan sistem operasi (OS) yang didukung.
Versi OS didukung.
OS menggunakan versi kernel yang didukung.
Untuk Ubuntu, Uncomplicated Firewall (UFW) dinonaktifkan.
Untuk Ubuntu, pengelola paket
apt
dapat dioperasikan dan paket yang diperlukan tersedia.Untuk Red Hat Enterprise Linux, pengelola paket
dnf
dapat dioperasikan dan paket yang diperlukan tersedia.Untuk Red Hat Enterprise Linux, Podman tidak diinstal.
Mesin node memenuhi persyaratan CPU minimum.
Mesin node memenuhi persyaratan memori minimum.
Mesin node memenuhi persyaratan penyimpanan disk minimum.
Sinkronisasi waktu dikonfigurasi di komputer node.
kubelet
aktif dan berjalan di mesin node.containerd
aktif dan berjalan di mesin node.Rute default untuk merutekan paket ke gateway default ada di node.
Domain Name System (DNS) berfungsi dengan baik. Jika cluster dikonfigurasi untuk berjalan di belakang proxy, pemeriksaan ini akan dilewati.
CIDR Pod tidak tumpang-tindih dengan alamat IP mesin node.
Jika cluster dikonfigurasi untuk menggunakan mirror registry, mirror registry dapat dijangkau.
Google Cloud pemeriksaan untuk setiap node dan untuk cluster:
Artifact Registry,
gcr.io
, jangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan mirror registry, pemeriksaan ini akan dilewati.Google API dapat dijangkau.
Pemeriksaan jaringan node (bervariasi berdasarkan konfigurasi load balancing):
VIP untuk server Kubernetes API dapat diakses.
VIP load balancer dapat diakses.
Node dapat berkomunikasi di port yang diperlukan.
Instance peristiwa
etcd
disediakan dan persyaratan port terpenuhi.
Jika semua pemeriksaan lulus, Google Distributed Cloud akan membuat cluster. Untuk mengetahui informasi selengkapnya tentang persyaratan untuk membuat cluster, lihat Ringkasan prasyarat penginstalan.
Menjalankan pemeriksaan preflight sesuai permintaan untuk pembuatan cluster
Anda juga dapat menjalankan pemeriksaan pra-penerbangan secara terpisah, sebelum membuat cluster. Tindakan ini dapat bermanfaat karena operasi cluster utama, seperti pembuatan cluster, memerlukan waktu yang lama. Mengidentifikasi dan menyelesaikan masalah secara terpisah sebelum memulai operasi cluster utama dapat membantu Anda dalam penjadwalan.
Cluster yang dikelola sendiri
Perintah berikut memvalidasi file konfigurasi cluster yang ditentukan, tetapi tidak mencoba membuat cluster itu sendiri:
bmctl check config --cluster CLUSTER_NAME
Ganti
CLUSTER_NAME
dengan nama cluster yang terkait dengan file konfigurasi yang Anda periksa.Perintah ini memeriksa apakah mesin dan jaringan siap untuk pembuatan cluster:
bmctl check preflight --cluster CLUSTER_NAME
Ganti
CLUSTER_NAME
dengan nama cluster yang Anda periksa.
Cluster pengguna
Perintah berikut memvalidasi file konfigurasi cluster yang ditentukan, tetapi tidak mencoba membuat cluster itu sendiri:
bmctl check config --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster pengguna yang Anda periksa.ADMIN_KUBECONFIG
: jalur file kubeconfig cluster admin terkait.
Perintah berikut memeriksa apakah mesin dan jaringan siap untuk pembuatan cluster:
bmctl check preflight --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
bmctl
mendukung penggunaan --kubeconfig
sebagai alias untuk
flag--admin-kubeconfig
.
Pemeriksaan awal untuk upgrade cluster
Saat Anda mengupgrade cluster, Google Distributed Cloud akan otomatis menjalankan pemeriksaan pra-penerbangan sebelum perubahan dilakukan.
Apa yang diperiksa?
Pemeriksaan awal untuk upgrade cluster memeriksa hal berikut:
Pemeriksaan mesin node:
Komputer cluster menggunakan sistem operasi (OS) yang didukung.
Versi OS didukung.
OS menggunakan versi kernel yang didukung.
Untuk Ubuntu, Uncomplicated Firewall (UFW) dinonaktifkan.
Mesin node memenuhi persyaratan CPU minimum.
Mesin node memiliki lebih dari 20% resource CPU yang tersedia.
Mesin node memenuhi persyaratan memori minimum.
Mesin node memenuhi persyaratan penyimpanan disk minimum.
Sinkronisasi waktu dikonfigurasi di komputer node.
Rute default untuk merutekan paket ke gateway default ada di node.
Domain Name System (DNS) berfungsi dengan baik. Jika cluster dikonfigurasi untuk berjalan di belakang proxy, pemeriksaan ini akan dilewati.
Jika cluster dikonfigurasi untuk menggunakan mirror registry, mirror registry dapat dijangkau.
- Tidak ada node bidang kontrol atau node load balancer dalam mode pemeliharaan.
Google Cloud pemeriksaan untuk setiap node dan untuk cluster:
Artifact Registry,
gcr.io
, jangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan mirror registry, pemeriksaan ini akan dilewati.Google API dapat dijangkau.
Pemeriksaan mesin:
kubelet
aktif dan berjalan di mesin node.containerd
aktif dan berjalan di mesin node.Status endpoint kesehatan Antarmuka Jaringan Container (CNI) adalah sehat.
CIDR Pod tidak tumpang-tindih dengan alamat IP mesin node.
- Masa berlaku sertifikat
kubeadm
belum berakhir.
Pemeriksaan jaringan node (bervariasi berdasarkan konfigurasi load balancing):
VIP untuk server Kubernetes API dapat diakses.
VIP load balancer dapat diakses.
Node dapat berkomunikasi di port yang diperlukan.
Instance peristiwa
etcd
disediakan dan persyaratan port terpenuhi.
Jika semua pemeriksaan lulus, Google Distributed Cloud akan mengupgrade cluster. Untuk mengetahui informasi selengkapnya tentang cara mengupgrade cluster, lihat Praktik terbaik untuk upgrade cluster Google Distributed Cloud dan Siklus proses dan tahap upgrade cluster.
Menjalankan pemeriksaan preflight sesuai permintaan untuk upgrade cluster
Perintah bmctl check preflight
memungkinkan Anda menjalankan pemeriksaan preflight sebelum mengupgrade cluster. Anda dapat memeriksa apakah cluster siap untuk upgrade
dengan menjalankan perintah pemeriksaan pra-penerbangan berikut sebelum memulai upgrade:
Perbarui versi cluster (
anthosBareMetalVersion
) dalam file konfigurasi cluster.Gunakan perintah berikut untuk memeriksa apakah cluster siap diupgrade dan menjalankan pemeriksaan pra-penerbangan:
bmctl check preflight --cluster CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang akan diupgrade.ADMIN_KUBECONFIG
: jalur ke file kubeconfig cluster admin.
Saat Anda membuat pemeriksaan pra-penerbangan dengan perintah ini untuk menguji upgrade cluster, resource kustom
PreflightCheck
akan dibuat di cluster admin.
Pemeriksaan preflight internal pada cluster yang ada
Google Distributed Cloud melakukan pemeriksaan pendahuluan internal secara otomatis saat Anda menerapkan resource Kubernetes ke cluster yang ada. Jika ada pemeriksaan yang gagal, Google Distributed Cloud tidak akan mengubah node terkait, kecuali jika Anda melewati pemeriksaan secara eksplisit.
Melewati pemeriksaan awal saat menerapkan resource Kubernetes
Untuk mengabaikan pemeriksaan awal internal saat menerapkan resource ke cluster yang ada, Anda perlu menyetel kolom BypassPreflightCheck
ke true
dalam file konfigurasi cluster.
Berikut adalah bagian dari file konfigurasi cluster yang menunjukkan kolom
bypassPreflightCheck
yang ditetapkan ke true
:
apiVersion: v1
kind: Namespace
metadata:
name: cluster-user1
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: user1
namespace: cluster-user1
spec:
type: user
bypassPreflightCheck: true
# Anthos cluster version.
anthosBareMetalVersion: 1.33.100-gke.89
...
Menjalankan pemeriksaan pra-peluncuran terbaru
Pemeriksaan pra-penerbangan (dan health check) diperbarui saat masalah umum diidentifikasi.
Untuk mengarahkan bmctl
agar menjalankan pemeriksaan dari image patch terbaru dari versi minor yang diinstal, gunakan tanda opsi --check-image-version latest
:
bmctl check preflight --cluster CLUSTER_NAME --check-image-version latest
Ganti CLUSTER_NAME
dengan nama cluster yang
Anda periksa.
Hal ini dapat membantu Anda mengatasi masalah umum yang baru-baru ini diidentifikasi tanpa perlu membuat atau mengupgrade cluster terlebih dahulu.
Anda juga dapat melakukan health check terbaru pada cluster aktif untuk menentukan apakah cluster tersebut beroperasi dengan benar. Untuk mengetahui informasi selengkapnya, lihat Menjalankan health check terbaru.
Mengabaikan hasil pemeriksaan awal otomatis
Jika Anda menjalankan pemeriksaan pra-penerbangan sesuai permintaan sebelum membuat atau mengupgrade cluster, Anda
dapat melewati pemeriksaan pra-penerbangan otomatis. Untuk melewati pemeriksaan pendahuluan otomatis,
gunakan tanda --force
opsional saat Anda menjalankan bmctl create cluster
atau
bmctl upgrade cluster
.