Menjalankan pemeriksaan preflight

Dokumen ini memberikan informasi tentang pemeriksaan preflight yang dijalankan saat Anda membuat atau mengupgrade cluster di Google Distributed Cloud (khusus software) untuk VMware.

Meninjau aturan firewall Anda

Pada versi 1.29 dan yang lebih baru, pemeriksaan preflight sisi server diaktifkan secara default saat Anda membuat, mengupdate, dan mengupgrade cluster. Pemeriksaan preflight sisi server memerlukan aturan firewall tambahan. Di beberapa Aturan firewall untuk cluster admin, telusuri "Pemeriksaan preflight" dan memastikan semua aturan {i>firewall<i} yang diperlukan dikonfigurasi.

Menjalankan gkectl check-config

Jika berencana membuat cluster menggunakan gkectl, Anda menjalankan gkectl create-config untuk membuat file konfigurasi. File konfigurasi mengarahkan penginstalan Anda: Anda memberikan informasi tentang lingkungan vSphere, jaringan, dan beban Anda dan tampilan cluster yang Anda inginkan. Anda dapat membuat file konfigurasi sebelum atau sesudah Anda membuat workstation admin. Sebagai agar lulus pemeriksaan tertentu, mereka harus dijalankan dari {i>workstation<i} admin.

Setelah Anda memodifikasi file agar memenuhi kebutuhan lingkungan dan Anda, gunakan file tersebut untuk membuat cluster di lingkungan lokal Anda.

Sebelum membuat cluster menggunakan gkectl, jalankan gkectl check-config ke memvalidasi file konfigurasi dengan beberapa pemeriksaan preflight. Jika perintah menampilkan pesan FAILURE, perbaiki masalahnya dan memvalidasi file kembali. Jika validasi fitur tertentu menampilkan WARNING Anda harus memperbaiki masalah yang mendasarinya sebelum dapat menggunakan fitur tersebut.

Mode pemeriksaan preflight dan melewati validasi

gkectl check-config memiliki mode default dan mode cepat:

  • Dalam mode default, perintah memvalidasi setiap kolom secara komprehensif. Selain itu, mode default membuat virtual machine (VM) sementara vSphere sebagai bagian dari validasinya, yang bisa memakan waktu lebih lama.

  • Dalam mode cepat, perintah melewati pemeriksaan yang membuat VM pengujian dan hanya menjalankan pemeriksaan cepat. Anda mengaktifkan mode cepat dengan meneruskan flag --fast.

Anda dapat melewati validasi tertentu dengan meneruskan tanda lain, yang dijelaskan di gkectl check-config --help.

Traffic antara workstation admin dan VM pengujian

Dalam mode default, pemeriksaan preflight akan membuat VM pengujian untuk cluster. Setiap VM pengujian menjalankan server HTTP yang memantau port 443 dan pada porta {i>node<i} yang Anda tentukan di file konfigurasi.

Beberapa alamat IP ditetapkan ke VM pengujian. Jika file konfigurasi Anda menunjukkan bahwa {i>node<i} cluster Anda akan mendapatkan alamat IP mereka dari DHCP server, maka pemeriksaan {i>preflight <i}menggunakan server DHCP untuk menetapkan alamat IP ke dan VM pengujian. Jika file konfigurasi Anda menunjukkan bahwa node cluster akan diberi alamat IP statis, maka pemeriksaan {i> preflight <i}menetapkan Alamat IP yang Anda tentukan di File blok IP ke VM pengujian.

Pemeriksaan {i>preflight<i}, yang berjalan di {i>workstation<i} admin, mengirim permintaan HTTP ke VM uji menggunakan berbagai alamat IP yang telah ditetapkan ke VM. Permintaan dikirim ke port 443 dan ke port node yang Anda tentukan file konfigurasi Anda.

Kapan saya harus menjalankan pemeriksaan preflight?

Praktik terbaiknya adalah menjalankan pemeriksaan preflight lebih awal dan sebelum mencoba membuat cluster. Menjalankan pemeriksaan preflight lebih awal dapat membantu memastikan bahwa Anda telah mengonfigurasi lingkungan vSphere dan jaringan Anda dengan benar.

Jika Anda menggunakan versi 1.2.0-gke.6, jalankan gkectl check-config dua kali:

  1. Jalankan gkectl check-config --fast.

  2. Jalankan gkectl prepare.

  3. Jalankan gkectl check-config lagi, tanpa flag --fast.

Alasan menjalankan dua kali adalah karena gkectl prepare mengupload template VM untuk image OS node cluster ke lingkungan vSphere Anda. Template VM tersebut harus sebelum Anda menjalankan set validasi lengkap.

Pada versi 1.2.1 dan yang lebih baru, perintah check-config sendiri mengupload VM template, sehingga Anda dapat menjalankan kumpulan validasi lengkap sebelum menjalankan gkectl prepare:

  1. Jalankan gkectl check-config, tanpa flag --fast.

  2. Jalankan gkectl prepare.

Pemeriksaan preflight memvalidasi nilai yang Anda berikan ke file. Anda tidak perlu harus mengisi setiap kolom di file konfigurasi untuk menjalankan pemeriksaan preflight terhadap file; melainkan, Anda dapat memvalidasi file secara berulang saat Anda mengisi {i>field-field<i}-nya. Misalnya, jika Anda hanya ingin memvalidasi vCenter , Anda hanya dapat mengisi kolom vcenter dan menjalankan pemeriksaan tersebut.

Ingat bahwa konfigurasi menjadi tidak dapat diubah setelah Anda membuat klaster. Menjalankan pemeriksaan preflight membantu Anda menemukan dan menyelesaikan masalah di sebelum membuat cluster.

Mempertahankan VM pengujian untuk proses debug

Mulai versi 1.2.1, perintah gkectl check-config memiliki --cleanup penanda.

Saat gkectl check-config melakukan set validasi lengkap, model akan membuat VM uji dan kunci SSH terkait. Jika Anda ingin mempertahankan VM pengujian dan Kunci SSH untuk tujuan proses debug, setel --cleanup ke salah (false).

Nilai default --cleanup adalah true.

Daftar pemeriksaan preflight

Pemeriksaan preflight memvalidasi setiap kolom dalam file konfigurasi. Berikut adalah pemeriksaan saat ini:

Kategori Deskripsi
File konfigurasi

Umumnya memvalidasi bahwa setiap kolom dan spesifikasi memiliki format dan nilai yang diharapkan.

Dilewati dengan --skip-validation-config.

Lewati kolom proxy validasi dengan flag --skip-validation-proxy.

Internet

Memvalidasi akses internet ke domain yang diperlukan. Memvalidasi proxy berdasarkan tempat Anda menjalankan {i>gkectl<i}.

Dilewati dengan flag --skip-validation-internet.

OS image

Memvalidasi bahwa OS image ada.

Dilewati dengan flag --skip-validation-os-images.

Versi OS Windows

Memvalidasi versi OS Windows.

Memvalidasi bahwa versi Windows didukung saat membuat workstation admin dengan alat command line gkeadm. Perlu diketahui bahwa meskipun alat gkeadm tersedia untuk Windows 10, Windows Server 2019, dan Linux, tidak ada pemeriksaan preflight untuk Linux. Validasi ini dimulai dari rilis versi 1.4.1.

Versi cluster

Memvalidasi bahwa versi cluster admin, versi cluster pengguna, dan gkectl versi cocok untuk pembuatan dan upgrade.

Dilewati dengan flag --skip-validation-cluster-version.

Kondisi cluster

Memvalidasi bahwa admin atau cluster pengguna sehat sebelum upgrade:

  • Cluster admin: Pemeriksaan mencakup layanan Kubernetes, status komponen, DaemonSets, deployment, mesin, dan pod.
  • Cluster pengguna: Pemeriksaan mencakup layanan Kubernetes, endpoint API cluster, StatefulSet, deployment, deployment mesin, mesin, dan pod.

Dilewati dengan flag --skip-validation-cluster-health.

Masuk Memeriksa apakah cluster pengguna memiliki objek Gateway Istio sebelum melakukan upgrade.
IP yang dicadangkan

Memvalidasi bahwa tersedia cukup alamat IP untuk pembuatan dan {i>upgrade.<i}

Dilewati dengan flag --skip-validation-reserved-ips.

Google Cloud
ID Project
[*].projectid
Memvalidasi project ID yang diberikan ke berbagai kolom dalam konfigurasi Anda. Jika project ID tidak ada, validasinya adalah dilewati.
Daftarkan akun layanan
registerserviceaccountkeypath
Memvalidasi bahwa akun layanan menangguhkan persyaratan Peran IAM. Memvalidasi bahwa API yang diperlukan mengaktifkan pembuatan versi.
Hubungkan akun layanan
agentserviceaccountkeypath
Memvalidasi bahwa akun layanan menangguhkan persyaratan Peran IAM. Memvalidasi bahwa API yang diperlukan mengaktifkan pembuatan versi.
Akun layanan Kemampuan Observasi Google Cloud
stackdriver.serviceaccountkeypath
Memvalidasi bahwa akun layanan menangguhkan persyaratan Peran IAM. Memvalidasi bahwa API yang diperlukan mengaktifkan pembuatan versi.
Dilewati dengan flag --skip-validation-gcp.
Akses ke gcr.io/gke-on-prem-release Memvalidasi akses ke registry image container yang dihosting di dan Container Registry.

Dilewati oleh --skip-validation-docker penanda.

Registry Docker
privateregistryconfig
Jika dikonfigurasi, memvalidasi akses ke registry Docker.

Dilewati dengan flag --skip-validation-docker.

vCenter Memeriksa apakah semua kolom vcenter ada, dan juga akan memeriksa hal berikut:
Kredensial
vcenter.credentials.[*]
Memvalidasi autentikasi ke Server vCenter menggunakan kredensial pengguna.
Versi vSphere Memvalidasi bahwa versi vCenter dan ESXi didukung.
Pusat Data
vcenter.datacenter
Memvalidasi bahwa pusat data vSphere ada.
Datastore
vcenter.datastore
Memvalidasi bahwa datastore vSphere ada.
Disk data
vcenter.datadisk
Memvalidasi bahwa disk virtual machine (VMDK) vSphere belum ada di vSphere.
Kumpulan resource
vcenter.resourcepool
Memvalidasi bahwa kumpulan resource vSphere ada.
Jaringan
vcenter.network
Memvalidasi bahwa jaringan vSphere ada.

Dilewati dengan flag --skip-validation-infra.

Penyimpanan
Driver CSI vSphere Memvalidasi bahwa driver CSI vSphere diaktifkan jika ada adalah {i>intree<i} atau CSI vSphere PersistentVolumes. Yaitu, di file konfigurasi cluster pengguna, storage.vSphereCSIDisabled tidak ditetapkan ke true.
Parameter StorageClass

Memvalidasi bahwa StorageClass tidak memiliki parameter yang tidak didukung berikut:

  • hostfailurestotolerate
  • penyediaan paksa
  • penyimpanan cache
  • disk setrip
  • objectspacereservation
  • iopslimit
  • format disk

Jika cluster Anda memiliki StorageClasses dengan salah satu model parameter yang mungkin berarti Anda perlu memigrasikan volume.

Untuk informasi selengkapnya, lihat Pertimbangan untuk Migrasi Volume vSphere Dalam Hierarki dan bagian masalah umum tentang upgrade pada versi 1.15.

Anotasi dalam PersistentVolume dan PersistentVolumeKlaim yang dibuat secara statis

Sebelum melakukan upgrade, periksa anotasi di PersistentVolumes vSphere in-tree dan vSphere PersistentVolumecus:

  • PersistentVolume dalam hierarki vSphere yang dibuat secara statis memiliki anotasi pv.kubernetes.io/provisioned-by: kubernetes.io/vsphere-volume
  • vSphere PersistentVolumes Claimss yang dibuat secara statis memiliki anotasi volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/vsphere-volume dan volume.kubernetes.io/storage-provisioner: kubernetes.io/vsphere-volume

Jika cluster Anda memiliki PersistentVolume dalam hierarki atau vSphere PersistentVolume Claimss tanpa anotasi ini, Anda harus memberi anotasi pada PersistentVolumes dan PersistentVolumeKlaim sebelum melanjutkan, lihat Pertimbangan untuk Migrasi Volume vSphere Dalam Hierarki.

Workload CSI

Memvalidasi bahwa cluster berhasil menjalankan beban kerja yang menggunakan PersistentVolume yang disediakan secara dinamis yang dibuat melalui {i>Driver<i} CSI {i>vSphere<i}.

Pemeriksaan ini berjalan selama peningkatan versi dan hanya jika ada volume vSphere dalam pohon dan tidak ada Volume CSI vSphere.

Pemeriksaan ini:

  1. Memeriksa bahwa tidak ada sumber daya yang tersisa dari proses validasi sebelumnya.
  2. Menemukan atau membuat StorageClass dengan kolom penyedia yang disetel ke bidang penyediaan yang disetel ke "csi.vsphere.vmware.com".
    1. Di cluster pengguna, opsi ini memilih CSI StorageClass standard-rwo.
    2. Dalam cluster admin, menemukan StorageClass dengan kolom penyediaan ditetapkan ke csi.vsphere.vmware.com. Jika tidak ada StorageClass seperti itu di cluster, pengujian untuk sementara membuat CSI StorageClass baru dan menggunakannya dalam pemeriksaan.
  3. Membuat PersistentVolumeKlaim di namespace default menggunakan StorageClass yang ditemukan atau dibuat di langkah sebelumnya dan menunggu PersistentVolume yang dibuat secara dinamis berada dalam fase Bound.
  4. Membuat Pekerjaan penulis di namespace default yang memasang PersistentVolume yang dibuat di atas. Pod penulis dijadwalkan dan sedang dimulai ia menulis {i>string<i} ke file dalam sistem file yang terpasang.
  5. Menggambarkan mata penulis Job dan Pod terkaitnya.
  6. Membuat Tugas pembaca di namespace default yang memasang PersistentVolume yang dibuat di atas. Pod pembaca dijadwalkan dan sedang dimulai yang membaca file yang ditulis oleh penulis Pod memastikan bahwa data yang ditulis oleh Pod penulis berhasil dibaca.
  7. Menggambarkan Job pembaca dan Pod terkaitnya.
  8. Menurunkan PersistentVolumeKlaim, sebagai hasilnya PersistentVolume juga dihapus.
  9. Menurunkan StorageClass jika dibuat selama pengujian.

Host kelompok anti-afinitas

Memvalidasi bahwa jumlah host vCenter fisik minimal tiga jika antiAffinityGroups diaktifkan.

Guna menonaktifkan antiAffinityGroups untuk cluster, lihat antiAffinityGroups.enabled dan ini catatan rilis.

Dilewati dengan flag --skip-validation-infra.

Load balancer

Memvalidasi konfigurasi load balancing:

  • Jika mode load balancing terintegrasi (lbmode: Integrated), memvalidasi bahwa semua kolom bigip ada dalam Spesifikasi admincluster dan usercluster.
  • Jika mode load balancing manual (lbmode: Manual), memvalidasi bahwa semua kolom manuallbspec ada di Spesifikasi admincluster dan usercluster.
Load balancing terintegrasi
bigip.credentials.[*] Memvalidasi kredensial F5 BIG-IP Anda.
bigip.partition Memvalidasi bahwa partisi yang disediakan ada.
Peran pengguna F5 BIG-IP Memvalidasi bahwa pengguna F5 BIG-IP yang disediakan memiliki Peran Administrator atau Administrator Resource.
bigip.vips.[*] Memvalidasi VIP yang disediakan.

Dilewati dengan --fast atau --skip-validation-load-balancer.

Load balancing manual
Konfigurasi jaringan Memvalidasi VIP, IP node, dll.

Dilewati dengan --fast atau --skip-validation-load-balancer penanda.

[*].manuallbspec.[*] Memvalidasi port node yang disediakan.
Dilewati dengan flag --skip-validation-load-balancer.
Jaringan

Memvalidasi bahwa rentang CIDR, VIP, dan IP statis yang disediakan (jika dikonfigurasi) tersedia. Memeriksa apakah alamat IP tidak tumpang-tindih.

Dilewati dengan flag --skip-validation-net-config.

DNS

Memvalidasi bahwa server DNS yang disediakan tersedia.

Dilewati dengan flag --skip-validation-dns.

NTP

Memvalidasi bahwa server Protokol Waktu Jaringan (NTP) yang disediakan tersedia.

Dilewati dengan flag --skip-validation-tod.

VIP

Ping VIP yang disediakan. Pemeriksaan ini berhasil jika ping gagal, yang menunjukkan bahwa VIP yang diharapkan belum digunakan.

Dilewati dengan --skip-validation-vips.

IP Node

Melakukan ping ke alamat IP node yang disediakan. Pemeriksaan ini berhasil jika ping gagal, yang menunjukkan IP node yang diharapkan belum digunakan.

Dilewati dengan --skip-validation-node-ips.

Hasil pemeriksaan preflight

Pemeriksaan preflight dapat menampilkan hasil berikut:

BERHASIL
Kolom dan nilainya lulus pemeriksaan.
GAGAL
Kolom dan/atau nilainya tidak lulus pemeriksaan. Jika pemeriksaan menampilkan FAILURE, perbaiki masalah dan validasi file lagi.
DILEWATI

Pemeriksaan dilewati, mungkin karena pemeriksaan tersebut tidak relevan dengan konfigurasi Anda. Misalnya, jika Anda menggunakan server DHCP, periksa Pemeriksaan IP node dan DNS—hanya relevan dengan konfigurasi IP statis—dilewati.

Jika Anda meneruskan penanda yang melewatkan validasi, pemeriksaan yang dilewati tidak mengembalikan hasil SKIPPED; melainkan, validasi tidak berjalan dan tidak terlihat dalam {i>output <i}perintah.

TIDAK DIKETAHUI

Lewati menampilkan kode bukan nol. Anda dapat menganggap hasil UNKNOWN sebagai gagal dalam pemeriksaan. TIDAK DIKETAHUI biasanya menunjukkan bahwa pemeriksaan gagal menjalankan beberapa paket sistem, seperti gagal menjalankan {i>nslookup<i} atau gagal menjalankan gcloud.

Segera hadir

Pemeriksaan preflight berikut akan ditambahkan dalam rilis mendatang:

  • Server NTP

Menjalankan pemeriksaan preflight

Anda dapat menjalankan pemeriksaan preflight dengan menjalankan perintah berikut:

gkectl check-config --config [CONFIG]

dengan [CONFIG] adalah jalur ke file konfigurasi Anda

Berjalan dalam mode cepat

Jika mau, Anda dapat menjalankan pemeriksaan preflight dalam "mode cepat", yang melewatkan dan validasi yang menghasilkan VM pengujian sementara, seperti load balancing VIP dan dan validasi IP node. Untuk melakukannya, teruskan --fast:

gkectl check-config --config [CONFIG] --fast

Melewati validasi tertentu

Anda dapat meneruskan penanda untuk melewati validasi tertentu secara terperinci, seperti DNS, {i>proxy<i}, dan jaringan. Setiap tanda lewati diawali dengan --skip-[VALIDATION].

Untuk mempelajari flag lewati yang tersedia, jalankan perintah berikut. Secara opsional, lihat referensi check-config gkectl:

gkectl check-config --help

Misalnya, untuk melewati validasi load balancer:

gkectl check-config --config my-config.yaml --skip-validation-load-balancer 

Membatalkan pemeriksaan preflight

Jika Anda mulai menjalankan pemeriksaan preflight dan ingin membatalkannya, tekan CTRL + C dua kali. Jika pemeriksaan preflight membuat VM uji, pembatalan juga harus dibersihkan VM secara otomatis.

Membersihkan VM uji

Jika VM uji tertinggal setelah pemeriksaan preflight selesai, Anda dapat menghapus VM dari vCenter. VM pengujian memiliki nama seperti ini:

check-config-[dhcp|static]-[random number]

Untuk menghapus VM:

  1. Klik kanan VM, lalu klik Power > Matikan

  2. Setelah VM dimatikan, klik kanan lagi VM, lalu klik Delete dari Disk.

Contoh

Berikut adalah contoh output perintah. Dalam contoh ini, sedang divalidasi menggunakan mode load balancing terintegrasi IP tanpa registry Docker eksternal:

- Validation Category: Config Check
    - [SUCCESS] Config

- Validation Category: Internet Access
    - [SUCCESS] Internet access to required domains

- Validation Category: GCP
    - [SUCCESS] GCP Service
    - [SUCCESS] GCP Service Account

- Validation Category: Docker Registry
    - [SUCCESS] gcr.io/gke-on-prem-release access

- Validation Category: vCenter
    - [SUCCESS] Credentials
    - [SUCCESS] Version
    - [SUCCESS] Datacenter
    - [SUCCESS] Datastore
    - [SUCCESS] Data Disk
    - [SUCCESS] Resource Pool
    - [SUCCESS] Network
    - [SUCCESS] VSphere CSI Driver

- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster F5 (credentials, partition and user role)
    - [SUCCESS] User Cluster F5 (credentials, partition and user role)

- Validation Category: Network Configuration
    - [SUCCESS] CIDR, VIP and static IP (availability and overlapping)

- Validation Category: DNS
    - [SUCCESS] DNS (availability)

- Validation Category: VIPs
    - [SUCCESS] ping (availability)

- Validation Category: Node IPs
    - [SUCCESS] ping (availability)

Now running slow validation checks. ...

Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with admin cluster configuration...  DONE
Waiting to get IP addresses from test VMs...  DONE
Waiting for test VMs to become ready...  DONE

Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with user cluster configuration...  DONE
Waiting to get IP addresses from test VMs...  DONE
Waiting for test VMs to become ready...  DONE

- Validation Category: F5 BIG-IP
    - [SUCCESS] Admin Cluster VIP and NodeIP
    - [SUCCESS] Admin Cluster F5 Access
    - [SUCCESS] User Cluster VIP and NodeIP
    - [SUCCESS] User Cluster F5 Access

- Validation Category: Internet Access
    - [SUCCESS] Internet access to required domains

- Validation Category: vCenter on test VMs
    - [SUCCESS] Test VM: VCenter Access and Permission

- Validation Category: DNS on test VMs
    - [SUCCESS] Test VM: DNS Availability

- Validation Category: TOD on test VMs
    - [SUCCESS] Test VM: TOD Availability

- Validation Category: Docker Registry
    - [SUCCESS] gcr.io/gke-on-prem-release access

Deleting test VMs with admin cluster configuration...  DONE
Deleting test VMs with user cluster configuration...  DONE

Masalah umum

  • Untuk versi 1.3.0-gke.16:

    Anda harus menjalankan pemeriksaan validasi cepat, gkectl check-config --fast, untuk pemeriksaan preflight jika kedua hal berikut berlaku:

    1. Anda telah mengonfigurasi Google Distributed Cloud untuk menggunakan proxy.

    2. Anda menginstal salah satu paket berikut:

      • /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz paket dari laman Download.
      • /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgz paket dari workstation admin.

    Anda dapat menjalankan rangkaian validasi lengkap hanya jika Anda menginstal paket lengkap. Contoh: /var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16-full.tgz

  • Untuk versi 1.2.0-gke.6:

    Jika Anda menggunakan kumpulan resource bertingkat atau kumpulan resource default, gkectl check-config gagal saat Anda mencoba melakukan serangkaian validasi lengkap. Namun, Anda dapat melakukan kumpulan validasi yang lebih kecil dengan meneruskan tanda --fast.

    gkectl check-config --config [CONFIG] --fast

Langkah selanjutnya