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 situasi 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 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.Google Distributed Cloud juga menjalankan pemeriksaan pra-penerbangan internal saat admin atau cluster campuran 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.
Resource kustom PreflightCheck
Saat pemeriksaan pra-penerbangan berjalan, Google Distributed Cloud akan membuat resource kustom PreflightCheck
. Resource kustom PreflightCheck
bersifat persisten dan memberikan
catatan aktivitas dan hasil pemeriksaan pra-penerbangan.
Untuk mengambil resource kustom PreflightCheck
:
Dapatkan daftar pemeriksaan pra-penerbangan 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.
Respons mencantumkan resource berdasarkan namespace. Anda dapat menjalankan
kubectl get preflightchecks
di semua namespace untuk mendapatkan daftar yang komprehensif. Untuk setiap resource, respons akan menampilkan usia resource dan apakah pemeriksaan pra-penerbangan 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 pra-penerbangan yang berhasil 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 pra-penerbangan yang dijalankan dan apakah pemeriksaan tersebut lulus 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 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 (akses Container Registry dan Google API) untuk mesin dengan alamat IP192.0.2.53
dan192.0.2.54
.Gcp
: Konektivitas Google Cloud memeriksa 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 pra-penerbangan lulus secara kolektif.
Log pemeriksaan pra-penerbangan
Saat pemeriksaan pra-penerbangan berjalan sebagai hasil dari perintah bmctl
, seperti bmctl check
preflight
, Google Distributed Cloud akan membuat file log. Berikut ini yang dihasilkan
dan tempatnya:
Log pemeriksaan pra-penerbangan dibuat di direktori dengan pola penamaan
preflight-TIMESTAMP
berikut.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 Google Cloud cluster, 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 pra-penerbangan untuk pembuatan cluster
Saat Anda membuat cluster, Google Distributed Cloud akan otomatis menjalankan pemeriksaan pra-penerbangan sebelum perubahan dilakukan.
Apa yang diperiksa?
Pemeriksaan pra-penerbangan 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.
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 mesin 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 balik proxy, pemeriksaan ini akan dilewati.
CIDR Pod tidak tumpang-tindih dengan alamat IP komputer node.
Jika cluster dikonfigurasi untuk menggunakan mirror registry, mirror registry dapat dijangkau.
Google Cloud memeriksa setiap node dan cluster:
Container Registry,
gcr.io
, keterjangkauan 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 informasi selengkapnya tentang persyaratan untuk membuat cluster, lihat Ringkasan prasyarat penginstalan.
Menjalankan pemeriksaan pra-penerbangan on demand 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, memakan waktu. 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 pra-penerbangan untuk upgrade cluster
Saat Anda mengupgrade cluster, Google Distributed Cloud akan otomatis menjalankan pemeriksaan pra-penerbangan sebelum perubahan apa pun dilakukan.
Apa yang diperiksa?
Pemeriksaan pra-penerbangan 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.
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 memeriksa setiap node dan cluster:
Container Registry,
gcr.io
, keterjangkauan 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) baik.
CIDR Pod tidak tumpang-tindih dengan alamat IP komputer node.
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 pra-penerbangan on demand untuk upgrade cluster
Perintah bmctl check preflight
memungkinkan Anda menjalankan pemeriksaan pra-penerbangan sebelum
mengupgrade cluster. Anda dapat memeriksa apakah cluster siap untuk diupgrade 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 untuk 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 pra-penerbangan internal pada cluster yang ada
Google Distributed Cloud melakukan pemeriksaan pra-penerbangan 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 pra-penerbangan saat menerapkan resource Kubernetes
Untuk mengabaikan pemeriksaan pra-penerbangan 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.30.400-gke.133
...
Menjalankan pemeriksaan pra-penerbangan 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 menemukan masalah umum yang baru-baru ini diidentifikasi tanpa membuat atau mengupgrade cluster terlebih dahulu.
Anda juga dapat melakukan health check terbaru dari cluster aktif untuk menentukan apakah cluster tersebut beroperasi dengan benar. Untuk mengetahui informasi selengkapnya, lihat Menjalankan health check terbaru.
Mengabaikan hasil pemeriksaan pra-penerbangan otomatis
Jika menjalankan pemeriksaan pra-penerbangan sesuai permintaan sebelum membuat atau mengupgrade cluster, Anda dapat mengabaikan pemeriksaan pra-penerbangan otomatis. Untuk mengabaikan pemeriksaan pra-penerbangan otomatis,
gunakan tanda --force
opsional saat Anda menjalankan bmctl create cluster
atau
bmctl upgrade cluster
.