Pemeriksaan preflight memungkinkan Anda mengidentifikasi masalah sebelum melakukan operasi cluster utama, seperti membuat atau mengupgrade cluster. Saat pemeriksaan berjalan secara otomatis sebelum operasi, Google Distributed Cloud akan memblokir modifikasi cluster hingga semua validasi lulus. Anda juga dapat menjalankan pemeriksaan sesuai permintaan atau mengabaikannya selama alur kerja pengelolaan cluster.
Google Distributed Cloud menjalankan validasi ini saat Anda membuat atau mengupgrade cluster dan node pool dengan bmctl. Cluster ini juga menjalankan pemeriksaan internal saat admin
atau cluster hybrid mengupdate resource di cluster pengguna. Jika ada pemeriksaan yang gagal, tidak ada perubahan yang diterapkan ke cluster Anda.
Resource kustom PreflightCheck
Saat pemeriksaan preflight berjalan, Google Distributed Cloud akan membuat resource kustom PreflightCheck. Resource kustom PreflightCheck bersifat persisten dan memberikan
catatan aktivitas dan hasil pemeriksaan preflight.
Untuk mengambil resource kustom PreflightCheck:
Dapatkan daftar pemeriksaan preflight yang telah dijalankan untuk cluster tertentu:
kubectl get preflightchecks --kubeconfig ADMIN_KUBECONFIG --namespace CLUSTER_NAMESPACEGanti kode berikut:
ADMIN_KUBECONFIG: jalur file kubeconfig cluster admin.CLUSTER_NAMESPACE: namespace cluster.
Respons akan mencantumkan resource berdasarkan namespace. Anda dapat menjalankan
kubectl get preflightchecksdi semua namespace untuk mendapatkan daftar yang komprehensif. Untuk setiap resource, respons akan menampilkan usia resource dan apakah pemeriksaan preflight lulus atau tidak. Contoh respons berikut menunjukkan resourcePreflightCheckuntuk 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 6d20hAmbil detail untuk resource kustom
PreflightChecktertentu:kubectl describe preflightchecks --kubeconfig ADMIN_KUBECONFIG --namespace CLUSTER_NAMESPACEGanti kode berikut:
ADMIN_KUBECONFIG: jalur file kubeconfig cluster admin.CLUSTER_NAMESPACE: namespace cluster.
Contoh respons perintah berikut menunjukkan resource
PreflightCheckuntuk pemeriksaan preflight yang berhasil dan 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>Dalam resource kustom
PreflightChecksebelumnya, bagianStatusberisi informasi berikut:- Bagian
Checksmencantumkan setiap pemeriksaan preflight yang dijalankan dan apakah pemeriksaan tersebut lulus atau tidak. Dalam contoh ini, pemeriksaan berikut dijalankan:192.0.2.53dan192.0.2.54: pemeriksaan node (konfigurasi OS, resource, dan setelan software) untuk mesin dengan alamat IP192.0.2.53dan192.0.2.54.192.0.2.53-gpcdan192.0.2.54-gcp: Google Cloud pemeriksaan konektivitas (akses Artifact Registry dan Google API) untuk mesin dengan alamat IP192.0.2.53dan192.0.2.54.Gcp: Google Cloud pemeriksaan konektivitas untuk cluster.Node - Network: Pemeriksaan jaringan (konektivitas, operasietcd, akses VIP, dan binding port) untuk cluster.Pod - Cidr: Pemeriksaan alamat IP pod untuk alamat yang tumpang-tindih untuk cluster.
- Bagian
Cluster Specmenampilkan konfigurasi cluster. - Kolom
Passmenampilkantrue, yang menunjukkan bahwa pemeriksaan preflight lulus secara kolektif.
Log pemeriksaan preflight
Saat pemeriksaan preflight dijalankan sebagai hasil dari perintah bmctl, seperti bmctl check
preflight, Google Distributed Cloud akan membuat file log. Berikut hal yang dihasilkan
dan tempatnya:
Log pemeriksaan preflight dibuat dalam direktori dengan pola penamaan berikut
preflight-TIMESTAMP.Direktori preflight ini dibuat di direktori
loguntuk cluster di ruang kerjabmctl. Secara default, jalur direktorilogadalahbmctl-workspace/CLUSTER_NAME/log.Log preflight 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 adalah
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 preflight gagal, file log ini dapat membantu Anda mengidentifikasi dan memecahkan masalah.
Pemeriksaan preflight untuk pembuatan cluster
Saat Anda membuat cluster, Google Distributed Cloud akan otomatis menjalankan pemeriksaan preflight sebelum perubahan apa pun dilakukan.
Apa yang diperiksa?
Pemeriksaan awal untuk penginstalan memeriksa hal berikut:
Pemeriksaan mesin node:
Mesin cluster menggunakan sistem operasi (OS) yang didukung.
Versi OS didukung.
OS menggunakan versi kernel yang didukung.
Mesin node dikonfigurasi untuk menggunakan
cgroupsv2. Pemeriksaan gagal jika
cgroupsv1terdeteksi.Untuk Ubuntu, Uncomplicated Firewall (UFW) dinonaktifkan.
Untuk Ubuntu, pengelola paket
aptdapat dioperasikan dan paket yang diperlukan tersedia.Untuk Red Hat Enterprise Linux, pengelola paket
dnfdapat 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 mesin node.
kubeletaktif dan berjalan di mesin node.containerdaktif 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 balik 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, keterjangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan duplikat 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
etcddisediakan 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 on-demand untuk pembuatan cluster
Anda juga dapat menjalankan pemeriksaan preflight secara independen, sebelum membuat cluster. Hal 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_NAMEGanti
CLUSTER_NAMEdengan nama cluster yang terkait dengan file konfigurasi yang Anda periksa.Perintah ini memeriksa apakah mesin dan jaringan sudah siap untuk pembuatan cluster:
bmctl check preflight --cluster CLUSTER_NAMEGanti
CLUSTER_NAMEdengan 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_KUBECONFIGGanti kode berikut:
CLUSTER_NAME: nama cluster pengguna yang sedang Anda periksa.ADMIN_KUBECONFIG: jalur file kubeconfig cluster admin terkait.
Perintah berikut memeriksa apakah mesin dan jaringan sudah 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 preflight sebelum perubahan dilakukan.
Apa yang diperiksa?
Pemeriksaan preflight untuk upgrade cluster memeriksa hal berikut:
Pemeriksaan mesin node:
Mesin cluster menggunakan sistem operasi (OS) yang didukung.
Versi OS didukung.
OS menggunakan versi kernel yang didukung.
Mesin node dikonfigurasi untuk menggunakan
cgroupsv2. Pemeriksaan akan gagal jikacgroupsv1terdeteksi.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 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 balik 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 yang berada dalam mode pemeliharaan.
Google Cloud pemeriksaan untuk setiap node dan untuk cluster:
Artifact Registry,
gcr.io, keterjangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan duplikat registry, pemeriksaan ini akan dilewati.Google API dapat dijangkau.
Pemeriksaan mesin:
kubeletaktif dan berjalan di mesin node.containerdaktif dan berjalan di mesin node.Status endpoint responsivitas Container Network Interface (CNI) responsif.
CIDR pod tidak tumpang-tindih dengan alamat IP mesin node.
kubeadmsertifikat belum habis masa berlakunya.
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
etcddisediakan 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 serta Siklus proses dan tahapan upgrade cluster.
Menjalankan pemeriksaan preflight on-demand untuk upgrade cluster
Perintah bmctl check preflight memungkinkan Anda menjalankan pemeriksaan preflight sebelum mengupgrade cluster. Anda dapat memeriksa apakah cluster siap untuk diupgrade
dengan menjalankan perintah pemeriksaan preflight berikut sebelum memulai upgrade:
Update versi cluster (
anthosBareMetalVersion) di file konfigurasi cluster.Gunakan perintah berikut untuk memeriksa apakah cluster siap diupgrade dan menjalankan pemeriksaan preflight:
bmctl check preflight --cluster CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIGGanti kode berikut:
CLUSTER_NAME: nama cluster yang akan diupgrade.ADMIN_KUBECONFIG: jalur ke file kubeconfig cluster admin.
Saat Anda membuat pemeriksaan preflight dengan perintah ini untuk menguji upgrade cluster, resource kustom
PreflightCheckakan dibuat di cluster admin.
Pemeriksaan preflight internal pada cluster yang ada
Google Distributed Cloud melakukan pemeriksaan preflight 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 mengabaikan pemeriksaan secara eksplisit.
Melewati pemeriksaan preflight saat menerapkan resource Kubernetes
Untuk mengabaikan preflight check internal saat menerapkan resource ke cluster yang ada, Anda perlu menetapkan kolom BypassPreflightCheck ke true dalam file konfigurasi cluster.
Berikut adalah bagian dari file konfigurasi cluster yang menunjukkan kolom bypassPreflightCheck 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.36.200-gke.118
...
Menjalankan pemeriksaan preflight terbaru
Pemeriksaan preflight (dan health check) diperbarui saat masalah umum diidentifikasi.
Untuk mengarahkan bmctl agar menjalankan pemeriksaan dari image patch terbaru dari versi minor yang diinstal, gunakan flag opsi --check-image-version latest:
bmctl check preflight --cluster CLUSTER_NAME --check-image-version latest
Ganti CLUSTER_NAME dengan nama cluster yang
sedang Anda periksa.
Hal ini dapat membantu Anda menemukan masalah umum yang baru diidentifikasi tanpa harus 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 preflight otomatis
Jika Anda menjalankan pemeriksaan preflight sesuai permintaan sebelum membuat atau mengupgrade cluster, Anda dapat mengabaikan pemeriksaan preflight otomatis. Untuk mengabaikan pemeriksaan preflight otomatis,
gunakan flag --force opsional saat Anda menjalankan bmctl create cluster atau
bmctl upgrade cluster.