Pemeriksaan {i>preflight<i} adalah tindakan pencegahan untuk membantu mengidentifikasi masalah sebelum Anda memulai operasi cluster besar, seperti membuat atau mengupgrade cluster. Kapan pemeriksaan ini berjalan secara otomatis sebelum operasi, tidak ada perubahan cluster Anda kecuali preflight memeriksa semuanya lulus. Anda juga dapat menjalankan {i>preflight<i} pemeriksaan sesuai permintaan.
Dokumen ini menjelaskan setiap pemeriksaan, dalam keadaan apa operasi itu dijalankan secara otomatis, bagaimana dan kapan harus menjalankannya secara manual, dan bagaimana menafsirkan hasilnya.
Di Google Distributed Cloud, Anda dapat menjalankan pemeriksaan preflight untuk berbagai situasi:
Google Distributed Cloud menjalankan pemeriksaan preflight saat Anda membuat atau mengupgrade cluster dan resource kumpulan node dengan
bmctl
. Jika pemeriksaan gagal, tidak perubahan dilakukan. Anda juga dapat mengabaikan pemeriksaan ini atau menjalankannya secara eksplisit.Google Distributed Cloud juga menjalankan pemeriksaan preflight internal saat admin atau cluster hybrid membuat atau mengupdate resource Kubernetes di cluster pengguna. Tujuan akan dijalankan sebelum perubahan diterapkan pada cluster pengguna yang terpengaruh. Jika pemeriksaan gagal, tidak ada perubahan yang dilakukan.
PreflightCheck
resource kustom
Saat pemeriksaan preflight berjalan, Google Distributed Cloud akan membuat PreflightCheck
resource kustom. Resource kustom PreflightCheck
bersifat persisten dan menyediakan
catatan aktivitas dan hasil pemeriksaan preflight.
Untuk mengambil resource kustom PreflightCheck
:
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 cluster admin {i>kubeconfig<i}.CLUSTER_NAMESPACE
: namespace cluster.
Respons akan mencantumkan resource berdasarkan namespace. Anda dapat menjalankan
kubectl get preflightchecks
di semua namespace untuk daftar lengkap. Untuk setiap respons menunjukkan usia resource dan apakah lulus pemeriksaan preflight. 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 cluster admin {i>kubeconfig<i}.CLUSTER_NAMESPACE
: namespace cluster.
Contoh respons perintah berikut menunjukkan resource
PreflightCheck
untuk pemeriksaan preflight yang berhasil dan 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.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
PreflightCheck
sebelumnya, bagianStatus
berisi informasi berikut:- Bagian
Checks
mencantumkan setiap pemeriksaan preflight yang dijalankan dan apakah mereka 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
: Konektivitas Google Cloud pemeriksaan (akses Container Registry dan Google API) untuk komputer 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
: Pemeriksaan alamat IP pod untuk menemukan alamat yang tumpang-tindih gugus ini.
- Bagian
Cluster Spec
menunjukkan konfigurasi cluster. - Kolom
Pass
menampilkantrue
, yang menunjukkan bahwa pemeriksaan preflight yang disahkan 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 hasil yang dibuat
dan tempat:
Log pemeriksaan preflight dibuat di direktori dengan penamaan berikut pola
preflight-TIMESTAMP
.Direktori preflight ini dibuat di direktori
log
untuk cluster di ruang kerjabmctl
. Secara default, jalur direktorilog
bmctl-workspace/CLUSTER_NAME/log
.Log preflight terdiri dari file berikut:
File log untuk pemeriksaan mesin node, satu file untuk setiap node cluster. Catatan ini file diberi nama menggunakan alamat IP {i>node<i} tersebut. Sebagai contoh, 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 filenya mungkin
192.0.2.53-gcp
.File log untuk pemeriksaan akses Google Cloud cluster, yang bernama
gcp
.File log untuk pemeriksaan jaringan node, yang diberi nama
node-network
.
Jika pemeriksaan {i>preflight<i} gagal, {i>file<i} log ini dapat membantu Anda mengidentifikasi dan memecahkan masalah.
Pemeriksaan preflight untuk pembuatan cluster
Jika Anda membuat cluster, Google Distributed Cloud secara otomatis menjalankan pemeriksaan preflight sebelum perubahan apa pun dilakukan.
Apa yang diperiksa?
Pemeriksaan preflight untuk penginstalan memeriksa hal berikut:
Pemeriksaan mesin node:
Mesin cluster menggunakan sistem operasi (OS) yang didukung.
Versi OS didukung.
OS menggunakan versi {i>kernel<i} yang didukung.
Untuk Ubuntu, Uncomplicated Firewall (UFW) dinonaktifkan.
Untuk Ubuntu, pengelola paket
apt
dapat dioperasikan dan paket yang diperlukan adalah yang tersedia.Untuk Red Hat Enterprise Linux, pengelola paket
dnf
dapat dioperasikan dan paket yang diperlukan juga 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 pada mesin {i>node<i}.
kubelet
aktif dan berjalan di mesin node.containerd
aktif dan berjalan di mesin node.Ada rute default untuk mengarahkan paket ke gateway default di node.
Domain Name System (DNS) berfungsi dengan baik. Jika cluster tersebut dikonfigurasikan untuk berjalan di belakang proxy, pemeriksaan ini dilewati.
CIDR pod tidak tumpang tindih dengan alamat IP mesin node.
Jika cluster dikonfigurasi untuk menggunakan duplikat registry, mirror bisa dijangkau.
Google Cloud akan memeriksa setiap node dan cluster:
Container Registry,
gcr.io
, keterjangkauan diperiksa. Jika cluster tersebut dikonfigurasi untuk menggunakan duplikat registry, pemeriksaan ini 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 porta yang diperlukan.
Instance peristiwa
etcd
disediakan dan persyaratan port terpenuhi.
Setelah semua pemeriksaan lulus, Google Distributed Cloud akan membuat cluster. Untuk selengkapnya informasi tentang persyaratan untuk membuat cluster, lihat Penginstalan ringkasan prasyarat.
Menjalankan pemeriksaan preflight on-demand untuk pembuatan cluster
Anda juga dapat menjalankan pemeriksaan preflight secara independen, sebelum membuat cluster. Hal ini dapat bermanfaat untuk operasi cluster utama, seperti operasi cluster dan memakan waktu. Mengidentifikasi dan menyelesaikan masalah secara terpisah sebelum memulai operasi cluster besar dapat membantu Anda dalam penjadwalan.
Cluster yang dikelola sendiri
Perintah berikut memvalidasi 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 komputer dan jaringan sudah 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 yang Anda periksa.ADMIN_KUBECONFIG
: jalur yang terkait file kubeconfig cluster admin.
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 preflight untuk upgrade cluster
Saat Anda mengupgrade cluster, Google Distributed Cloud secara otomatis menjalankan pemeriksaan preflight sebelum perubahan apa pun dibuat.
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 {i>kernel<i} 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 {i>node<i}.
Ada rute default untuk mengarahkan paket ke gateway default di node.
Domain Name System (DNS) berfungsi dengan baik. Jika cluster tersebut dikonfigurasikan untuk berjalan di belakang proxy, pemeriksaan ini dilewati.
Jika cluster dikonfigurasi untuk menggunakan duplikat registry, mirror bisa dijangkau.
* Tidak ada node bidang kontrol atau node load balancer yang berada dalam mode pemeliharaan.
Google Cloud akan memeriksa setiap node dan cluster:
Container Registry,
gcr.io
, keterjangkauan diperiksa. Jika cluster tersebut dikonfigurasi untuk menggunakan duplikat registry, pemeriksaan ini dilewati.Google API dapat dijangkau.
Pemeriksaan komputer:
kubelet
aktif dan berjalan di mesin node.containerd
aktif dan berjalan di mesin node.Status endpoint kondisi 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 porta yang diperlukan.
Instance peristiwa
etcd
disediakan dan persyaratan port terpenuhi.
Setelah semua pemeriksaan lulus, Google Distributed Cloud akan mengupgrade cluster. Untuk selengkapnya tentang cara mengupgrade cluster, lihat Praktik terbaik untuk Cluster Google Distributed Cloud upgrade dan Siklus proses dan stage upgrade cluster.
Menjalankan pemeriksaan preflight on-demand untuk upgrade cluster
Perintah bmctl check preflight
memungkinkan Anda menjalankan pemeriksaan preflight sebelum
mengupgrade cluster Anda. Anda dapat memeriksa apakah cluster siap diupgrade
dengan menjalankan perintah pemeriksaan preflight berikut sebelum memulai upgrade:
Update versi cluster (
anthosBareMetalVersion
) di cluster file konfigurasi Anda.Gunakan perintah berikut untuk memeriksa apakah cluster siap 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 cluster admin {i>kubeconfig<i}.
Saat Anda membuat pemeriksaan preflight dengan perintah ini untuk menguji cluster saat upgrade, resource kustom
PreflightCheck
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 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 yang ada
cluster, Anda perlu menetapkan kolom BypassPreflightCheck
ke true
di
file konfigurasi cluster Anda.
Berikut adalah bagian dari file konfigurasi cluster yang menampilkan
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.30.0-gke.1930
...
Menjalankan pemeriksaan preflight terbaru
Pemeriksaan preflight (dan health check) diperbarui saat masalah umum teridentifikasi.
Untuk mengarahkan bmctl
agar menjalankan pemeriksaan dari image patch terbaru Anda
yang terinstal, gunakan tanda opsi --check-image-version latest
:
bmctl check preflight --cluster CLUSTER_NAME --check-image-version latest
Ganti CLUSTER_NAME
dengan nama cluster yang
yang Anda periksa.
Hal ini dapat membantu Anda menemukan masalah umum yang baru-baru ini teridentifikasi tanpa terlebih dahulu membuat atau mengupgrade cluster Anda.
Anda juga dapat melakukan health check terbaru pada cluster live untuk menentukan apakah beroperasi dengan baik. Untuk informasi selengkapnya, lihat Jalankan health check terbaru.
Mengabaikan hasil pemeriksaan preflight otomatis
Jika Anda menjalankan pemeriksaan preflight secara on demand sebelum membuat atau mengupgrade cluster,
dapat mengabaikan pemeriksaan preflight otomatis. Untuk mengabaikan pemeriksaan preflight otomatis,
gunakan flag --force
opsional saat Anda menjalankan bmctl create cluster
atau
bmctl upgrade cluster
.