Pemeriksaan preflight adalah tindakan pencegahan untuk membantu mengidentifikasi masalah sebelum Anda memulai operasi cluster besar, seperti membuat atau mengupgrade cluster. Ketika pemeriksaan ini berjalan secara otomatis sebelum operasi, tidak ada perubahan yang dilakukan pada cluster Anda kecuali jika pemeriksaan preflight semuanya lulus. Anda juga dapat menjalankan pemeriksaan preflight sesuai permintaan.
Dokumen ini menjelaskan setiap pemeriksaan, situasi apa yang dijalankan secara otomatis, bagaimana dan kapan harus menjalankannya secara manual, dan cara menafsirkan hasilnya.
Di GDCV untuk Bare Metal, Anda dapat menjalankan pemeriksaan preflight untuk berbagai situasi:
GDCV untuk Bare Metal menjalankan pemeriksaan preflight saat Anda membuat atau mengupgrade resource cluster dan node pool dengan
bmctl
. Jika pemeriksaan gagal, tidak ada perubahan yang dilakukan. Anda juga dapat mengabaikan pemeriksaan ini, atau menjalankannya secara eksplisit.GDCV untuk Bare Metal juga menjalankan pemeriksaan preflight internal saat admin atau cluster hybrid membuat atau memperbarui resource Kubernetes pada 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 preflight berjalan, GDCV untuk Bare Metal akan membuat
resource kustom PreflightCheck
. Resource kustom PreflightCheck
bersifat persisten dan menyediakan
data aktivitas dan hasil pemeriksaan preflight.
Untuk mengambil PreflightCheck
resource kustom:
Dapatkan daftar pemeriksaan preflight yang telah berjalan 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.
Responsnya mencantumkan resource menurut namespace. Anda dapat menjalankan
kubectl get preflightchecks
di semua namespace untuk mendapatkan daftar yang komprehensif. Untuk setiap resource, respons menunjukkan usia resource dan apakah pemeriksaan preflight lulus atau tidak. Contoh respons berikut menunjukkan 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 preflight berhasil yang berjalan 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.15.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.15.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
PreflightCheck
sebelumnya, bagianStatus
berisi informasi berikut:- Bagian
Checks
mencantumkan setiap pemeriksaan preflight yang dijalankan dan apakah lulus atau tidak. Dalam contoh ini, pemeriksaan berikut berjalan:192.0.2.53
dan192.0.2.54
: pemeriksaan node (konfigurasi OS, resource, dan setelan software) untuk mesin dengan alamat IP192.0.2.53
dan192.0.2.54
.192.0.2.53-gpc
dan192.0.2.54-gcp
: Pemeriksaan konektivitas Google Cloud (Container Registry dan akses Google API) untuk mesin dengan alamat IP192.0.2.53
dan192.0.2.54
.Gcp
: Pemeriksaan konektivitas Google Cloud untuk cluster.Node - Network
: Pemeriksaan jaringan (konektivitas, operasietcd
, akses VIP, dan binding port) untuk cluster.Pod - Cidr
: Alamat IP Pod memeriksa alamat yang tumpang-tindih untuk cluster.
- Bagian
Cluster Spec
menampilkan konfigurasi cluster. - Kolom
Pass
menampilkantrue
, yang menunjukkan bahwa pemeriksaan preflight diluluskan secara kolektif.
Log pemeriksaan preflight
Saat pemeriksaan preflight dijalankan sebagai hasil dari perintah bmctl
, seperti bmctl check
preflight
, GDCV untuk Bare Metal akan membuat file log. Berikut bagian yang dihasilkan
dan lokasinya:
Log pemeriksaan preflight dibuat dalam direktori dengan pola penamaan berikut
preflight-TIMESTAMP
.Direktori preflight ini dibuat di direktori
log
untuk cluster di ruang kerjabmctl
. Secara default, jalur direktorilog
adalahbmctl-workspace/CLUSTER_NAME/log
.Log preflight terdiri dari file berikut:
File log untuk pemeriksaan mesin node, satu file 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 file untuk setiap node cluster. File log ini diberi nama menggunakan alamat IP node. Misalnya, nama file dapat berupa
192.0.2.53-gcp
.File log untuk pemeriksaan akses Google Cloud cluster, yang bernama
gcp
.File log pemeriksaan jaringan node, yang bernama
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, GDCV untuk Bare Metal secara otomatis menjalankan pemeriksaan preflight sebelum perubahan dibuat.
Apa yang diperiksa?
Pemeriksaan preflight untuk pemeriksaan penginstalan, periksa hal-hal berikut:
Pemeriksaan mesin node:
Mesin cluster menggunakan sistem operasi (OS) yang didukung.
Versi OS didukung.
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 belum diinstal.
Mesin node memenuhi persyaratan CPU minimum.
Mesin node memenuhi persyaratan memori minimum.
Mesin node memenuhi persyaratan penyimpanan disk minimum.
Sinkronisasi waktu dikonfigurasi pada mesin node.
kubelet
aktif dan berjalan di mesin node.containerd
aktif dan berjalan di mesin node.Rute default untuk mengarahkan paket ke gateway default tersedia di node.
Domain Name System (DNS) berfungsi dengan benar. 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 pencerminan registry, pencerminan registry dapat dijangkau.
Google Cloud akan memeriksa setiap node dan cluster:
Container Registry,
gcr.io
, keterjangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan pencerminan 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 pada port yang diperlukan.
Instance peristiwa
etcd
disediakan dan persyaratan port terpenuhi.
Setelah semua pemeriksaan lulus, GDCV untuk Bare Metal akan membuat cluster. Untuk mengetahui informasi selengkapnya tentang persyaratan 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 besar, seperti pembuatan cluster, memakan waktu. Mengidentifikasi dan menyelesaikan masalah secara terpisah sebelum memulai operasi cluster besar dapat membantu 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 yang 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
tanda --admin-kubeconfig
.
Pemeriksaan preflight untuk upgrade cluster
Saat Anda mengupgrade cluster, GDCV untuk Bare Metal akan otomatis menjalankan pemeriksaan preflight sebelum perubahan apa pun 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.
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 pada mesin node.
Rute default untuk mengarahkan paket ke gateway default tersedia di node.
Domain Name System (DNS) berfungsi dengan benar. Jika cluster dikonfigurasi untuk berjalan di belakang proxy, pemeriksaan ini akan dilewati.
Jika cluster dikonfigurasi untuk menggunakan pencerminan registry, pencerminan registry dapat dijangkau.
* Tidak ada node bidang kontrol atau node load balancer yang berada dalam mode pemeliharaan. (Ditambahkan dalam GDCV untuk Bare Metal versi 1.15.2.)
Google Cloud akan memeriksa setiap node dan cluster:
Container Registry,
gcr.io
, keterjangkauan diperiksa. Jika cluster dikonfigurasi untuk menggunakan pencerminan 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 respons Antarmuka Jaringan Container (CNI) responsif.
CIDR pod tidak tumpang tindih dengan alamat IP mesin node.
Pemeriksaan jaringan node (bervariasi berdasarkan konfigurasi load balancing):
VIP untuk server Kubernetes API dapat diakses.
VIP load balancer dapat diakses.
Node dapat berkomunikasi pada port yang diperlukan.
Instance peristiwa
etcd
disediakan dan persyaratan port terpenuhi.
Jika semua pemeriksaan lulus, GDCV untuk Bare Metal akan mengupgrade cluster. Untuk mengetahui informasi selengkapnya tentang mengupgrade cluster, lihat Praktik terbaik untuk upgrade cluster GDCV untuk upgrade cluster Bare Metal serta Siklus proses dan tahap 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 untuk diupgrade dan menjalankan pemeriksaan preflight:
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.
Jika Anda membuat pemeriksaan preflight dengan perintah ini untuk menguji upgrade cluster, resource kustom
PreflightCheck
akan dibuat di cluster admin.
Pemeriksaan preflight internal pada cluster yang ada
GDCV untuk Bare Metal melakukan pemeriksaan preflight internal secara otomatis saat Anda menerapkan resource Kubernetes ke cluster yang ada. Jika ada pemeriksaan yang gagal, GDCV untuk Bare Metal tidak akan mengubah node terkait kecuali jika Anda mengabaikan pemeriksaan secara eksplisit.
Abaikan pemeriksaan preflight saat menerapkan resource Kubernetes
Untuk mengabaikan pemeriksaan preflight 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 menampilkan
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.15.11
...
Jalankan pemeriksaan preflight dan health check terbaru
Saat menggunakan bmctl
untuk menjalankan preflight atau health check, Anda dapat menambahkan
tanda --check-image-version latest
ke perintah untuk melakukan
pemeriksaan dari versi patch GDCV untuk Bare Metal terbaru. Hal ini dapat membantu Anda mengidentifikasi masalah umum tanpa membuat atau mengupgrade cluster terlebih dahulu.
Untuk menggunakan daftar pemeriksaan terbaru guna menentukan apakah mesin dan jaringan Anda siap untuk pembuatan cluster:
bmctl check preflight --cluster CLUSTER_NAME --check-image-version latest
Ganti
CLUSTER_NAME
dengan nama cluster yang Anda periksa.
Anda juga dapat melakukan health check terbaru pada cluster live untuk menentukan apakah cluster tersebut responsif.
Untuk melakukan health check terbaru pada cluster live:
bmctl check cluster --cluster CLUSTER_NAME --check-image-version latest
Ganti
CLUSTER_NAME
dengan nama cluster yang Anda periksa.
Mengabaikan hasil pemeriksaan preflight otomatis
Jika 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 menjalankan bmctl create cluster
atau
bmctl upgrade cluster
.