Menjalankan pemeriksaan pra-penerbangan

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

Meninjau aturan firewall

Pada versi 1.29 dan yang lebih baru, pemeriksaan pra-penerbangan sisi server diaktifkan secara default saat Anda membuat, mengupdate, dan mengupgrade cluster. Pemeriksaan pra-penerbangan sisi server memerlukan aturan firewall tambahan. Di Aturan firewall untuk cluster admin, telusuri "Pemeriksaan pra-penerbangan" dan pastikan semua aturan firewall yang diperlukan telah dikonfigurasi.

Menjalankan gkectl check-config

Jika berencana membuat cluster menggunakan gkectl, Anda harus menjalankan gkectl create-config untuk membuat file konfigurasi. File konfigurasi mendorong penginstalan: Anda memberikan informasi tentang lingkungan vSphere, jaringan, dan load balancer, serta tampilan cluster yang Anda inginkan. Anda dapat membuat file konfigurasi sebelum atau setelah membuat workstation admin. Agar pemeriksaan tertentu lulus, pemeriksaan tersebut harus dijalankan dari workstation admin.

Setelah mengubah file untuk memenuhi kebutuhan lingkungan dan cluster, Anda akan menggunakan file tersebut untuk membuat cluster di lingkungan on-premise.

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

Mode pemeriksaan pra-penerbangan dan melewati validasi

gkectl check-config memiliki mode default dan mode cepat:

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

  • Dalam mode cepat, perintah akan 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 flag lain, yang dijelaskan di gkectl check-config --help.

Traffic antara workstation admin dan VM pengujian

Dalam mode default, pemeriksaan pra-penerbangan akan membuat VM pengujian untuk cluster. Setiap VM pengujian menjalankan server HTTP yang memproses port 443 dan pada port node yang Anda tentukan dalam file konfigurasi.

Beberapa alamat IP ditetapkan ke VM pengujian. Jika file konfigurasi Anda menunjukkan bahwa node cluster akan mendapatkan alamat IP-nya dari server DHCP, pemeriksaan pra-penerbangan akan menggunakan server DHCP untuk menetapkan alamat IP ke VM pengujian. Jika file konfigurasi menunjukkan bahwa node cluster akan diberi alamat IP statis, pemeriksaan pra-penerbangan akan menetapkan alamat IP statis yang Anda tentukan dalam file blok IP ke VM pengujian.

Pemeriksaan pra-penerbangan, yang berjalan di workstation admin, mengirimkan permintaan HTTP ke VM pengujian menggunakan berbagai alamat IP yang ditetapkan ke VM. Permintaan dikirim ke port 443 dan ke port node yang Anda tentukan dalam file konfigurasi.

Kapan saya harus menjalankan pemeriksaan pra-penerbangan?

Praktik terbaiknya adalah menjalankan pemeriksaan pra-penerbangan lebih awal dan sebelum mencoba membuat cluster. Menjalankan pemeriksaan pra-penerbangan lebih awal dapat membantu mengonfirmasi bahwa Anda telah mengonfigurasi lingkungan vSphere dan jaringan 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 tanda --fast.

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

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

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

  2. Jalankan gkectl prepare.

Pemeriksaan pra-penerbangan memvalidasi nilai yang telah Anda berikan ke file. Anda tidak perlu mengisi setiap kolom dalam file konfigurasi untuk menjalankan pemeriksaan pra-penerbangan terhadap file; sebagai gantinya, Anda dapat memvalidasi file secara iteratif saat mengisi kolomnya. Misalnya, jika hanya ingin memvalidasi konfigurasi vCenter, Anda hanya dapat mengisi kolom vcenter dan menjalankan pemeriksaan terhadap kolom tersebut.

Perhatikan bahwa konfigurasi Anda menjadi tidak dapat diubah setelah Anda membuat cluster. Menjalankan pemeriksaan pra-penerbangan membantu Anda menemukan dan menyelesaikan masalah dalam konfigurasi sebelum membuat cluster.

Mempertahankan VM pengujian untuk proses debug

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

Saat menjalankan kumpulan validasi lengkap, gkectl check-config akan membuat VM pengujian dan kunci SSH terkait. Jika Anda ingin mempertahankan VM pengujian dan kunci SSH untuk tujuan proses debug, tetapkan --cleanup ke salah (false).

Nilai default --cleanup adalah true.

Daftar pemeriksaan pra-penerbangan

Pemeriksaan pra-penerbangan 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 flag --skip-validation-config.

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

Internet

Memvalidasi akses internet ke domain yang diperlukan. Memvalidasi konfigurasi proxy berdasarkan tempat Anda menjalankan gkectl.

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. Perhatikan bahwa meskipun alat gkeadm tersedia untuk Windows 10, Windows Server 2019, dan Linux, tidak ada pemeriksaan pra-penerbangan untuk Linux. Validasi ini dimulai dari versi rilis 1.4.1.

Versi cluster

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

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

Kondisi cluster

Memvalidasi bahwa cluster admin atau pengguna berfungsi dengan baik sebelum upgrade:

  • Cluster admin: Pemeriksaan mencakup layanan Kubernetes, status komponen, DaemonSet, 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 Istio Gateway sebelum upgrade.
IP yang Direservasi

Memvalidasi bahwa cukup alamat IP yang tersedia untuk pembuatan dan upgrade.

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

Google Cloud
ID Project
[*].projectid
Memvalidasi project ID yang diberikan ke berbagai kolom dalam konfigurasi. Jika project ID tidak ada, validasi akan dilewati.
Mendaftarkan akun layanan
registerserviceaccountkeypath
Memvalidasi bahwa akun layanan memiliki peran IAM yang diperlukan. Memvalidasi bahwa API yang diperlukan telah diaktifkan.
Menghubungkan akun layanan
agentserviceaccountkeypath
Memvalidasi bahwa akun layanan memiliki peran IAM yang diperlukan. Memvalidasi bahwa API yang diperlukan telah diaktifkan.
Akun layanan Google Cloud Observability
stackdriver.serviceaccountkeypath
Memvalidasi bahwa akun layanan memiliki peran IAM yang diperlukan. Memvalidasi bahwa API yang diperlukan telah diaktifkan.
Dilewati dengan flag --skip-validation-gcp.
Akses ke gcr.io/gke-on-prem-release Memvalidasi akses ke registry image container yang dihosting di Container Registry.

Dilewati oleh flag --skip-validation-docker.

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

Dilewati dengan flag --skip-validation-docker.

vCenter Memeriksa apakah semua kolom vcenter ada, dan juga memeriksa hal berikut:
Kredensial
vcenter.credentials.[*]
Memvalidasi autentikasi ke vCenter Server menggunakan kredensial pengguna yang diberikan.
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 vSphere (VMDK) 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 vSphere CSI diaktifkan jika ada PersistentVolumes vSphere intree atau CSI. Artinya, dalam file konfigurasi cluster pengguna, storage.vSphereCSIDisabled tidak ditetapkan ke true.
Parameter StorageClass

Memvalidasi bahwa StorageClass tidak memiliki parameter berikut yang tidak didukung:

  • hostfailurestotolerate
  • forceprovisioning
  • cachereservation
  • diskstripes
  • objectspacereservation
  • iopslimit
  • diskformat

Jika cluster Anda memiliki StorageClass dengan parameter sebelumnya, hal ini mungkin berarti Anda perlu memigrasikan volume.

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

Anotasi dalam PersistentVolume dan PersistentVolumeClaim dalam hierarki vSphere yang dibuat secara statis

Sebelum upgrade, periksa anotasi di PersistentVolume dalam hierarki vSphere dan PersistentVolumeClaim vSphere:

  • PersistentVolume dalam hierarki vSphere yang dibuat secara statis memiliki anotasi pv.kubernetes.io/provisioned-by: kubernetes.io/vsphere-volume
  • PersistentVolumesClaims vSphere 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 vSphere atau PersistentVolumeClaims vSphere tanpa anotasi ini, Anda harus menganotasi PersistentVolume dan PersistentVolumeClaims sebelum melanjutkan, lihat Pertimbangan untuk Migrasi Volume vSphere dalam Hierarki.

Workload CSI

Memvalidasi bahwa cluster berhasil menjalankan workload yang menggunakan PersistentVolume yang disediakan secara dinamis yang dibuat melalui Driver CSI vSphere.

Pemeriksaan ini berjalan selama upgrade dan hanya jika ada volume vSphere dalam hierarki dan tidak ada Volume CSI vSphere.

Pemeriksaan ini:

  1. Memeriksa bahwa tidak ada resource yang tertinggal dari operasi validasi sebelumnya.
  2. Menemukan atau membuat StorageClass dengan kolom penyedia ditetapkan ke kolom penyedia yang ditetapkan ke "csi.vsphere.vmware.com".
    1. Di cluster pengguna, StorageClass CSI standard-rwo akan dipilih.
    2. Di cluster admin, StorageClass akan menemukan kolom penyedia yang ditetapkan ke csi.vsphere.vmware.com. Jika tidak ada StorageClass tersebut di cluster, pengujian akan membuat StorageClass CSI baru untuk sementara dan menggunakannya dalam pemeriksaan.
  3. Membuat PersistentVolumeClaim 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 Tugas penulis di namespace default yang memasang PersistentVolume yang dibuat di atas. Pod penulis dijadwalkan dan saat memulai, pod tersebut akan menulis string ke file dalam sistem file yang dipasang.
  5. Menghapus Tugas penulis dan Pod terkait.
  6. Membuat Tugas pembaca di namespace default yang memasang PersistentVolume yang dibuat di atas. Pod pembaca dijadwalkan dan saat memulai, Pod tersebut membaca file yang ditulis oleh Pod penulis, sehingga memastikan bahwa data yang ditulis oleh Pod penulis berhasil dibaca.
  7. Menghapus Tugas pembaca dan Pod terkait.
  8. Menghapus PersistentVolumeClaim, sehingga PersistentVolume juga dihapus.
  9. Menghapus StorageClass jika dibuat selama pengujian.

Host untuk grup anti-afinitas

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

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

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 adalah manual (lbmode: Manual), memvalidasi bahwa semua kolom manuallbspec ada dalam spesifikasi admincluster dan usercluster.
Load balancing terintegrasi
bigip.credentials.[*] Memvalidasi kredensial F5 BIG-IP Anda.
bigip.partition Memvalidasi bahwa partisi yang diberikan ada.
Peran pengguna F5 BIG-IP Memvalidasi bahwa pengguna F5 BIG-IP yang diberikan memiliki peran Administrator atau Resource Administrator.
bigip.vips.[*] Memvalidasi VIP yang diberikan.

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

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

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

[*].manuallbspec.[*] Memvalidasi port node yang diberikan.
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 Network Time Protocol (NTP) yang disediakan tersedia.

Dilewati dengan flag --skip-validation-tod.

VIP

Melakukan ping ke VIP yang disediakan. Pemeriksaan ini berhasil jika ping gagal, yang menunjukkan bahwa VIP yang diharapkan belum diambil.

Dilewati dengan flag --skip-validation-vips.

IP Node

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

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

Hasil pemeriksaan pra-penerbangan

Pemeriksaan pra-penerbangan dapat menampilkan hasil berikut:

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

Pemeriksaan dilewati, kemungkinan karena pemeriksaan tidak relevan dengan konfigurasi Anda. Misalnya, jika Anda menggunakan server DHCP, pemeriksaan untuk DNS dan pemeriksaan IP node—yang hanya relevan dengan konfigurasi IP statis—akan dilewati.

Jika Anda meneruskan flag yang melewati validasi, pemeriksaan yang dilewati tidak akan menampilkan hasil SKIPPED; sebaliknya, validasi tidak berjalan dan tidak muncul di output perintah sama sekali.

TIDAK DIKETAHUI

Pengabaian menampilkan kode non-nol. Anda dapat menganggap hasil UNKNOWN sebagai pemeriksaan yang gagal. UNKNOWN biasanya menunjukkan bahwa pemeriksaan gagal menjalankan beberapa paket sistem, seperti gagal menjalankan nslookup atau gagal menjalankan gcloud.

Segera hadir

Pemeriksaan pra-penerbangan berikut akan ditambahkan dalam rilis mendatang:

  • Server NTP

Menjalankan pemeriksaan pra-penerbangan

Anda menjalankan pemeriksaan pra-penerbangan dengan menjalankan perintah berikut:

gkectl check-config --config [CONFIG]

dengan [CONFIG] sebagai jalur ke file konfigurasi Anda

Berjalan dalam mode cepat

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

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

Melewati validasi tertentu

Anda dapat meneruskan flag untuk melewati validasi tertentu secara terperinci, seperti DNS, proxy, dan jaringan. Setiap tanda lewati diawali dengan --skip-[VALIDATION].

Untuk mempelajari flag lewati yang tersedia, jalankan perintah berikut:

gkectl check-config --help

Misalnya, untuk melewati validasi load balancer:

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

Membatalkan pemeriksaan pra-penerbangan

Jika Anda mulai menjalankan pemeriksaan pra-penerbangan dan ingin membatalkan, tekan CTRL + C dua kali. Jika pemeriksaan pra-penerbangan membuat VM pengujian, pembatalan juga akan otomatis membersihkan VM.

Membersihkan VM pengujian

Jika VM pengujian tertinggal setelah pemeriksaan pra-penerbangan 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 Daya > Nonaktifkan

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

Contoh

Berikut adalah contoh output perintah. Dalam contoh ini, konfigurasi yang divalidasi menggunakan mode load balancing terintegrasi dan IP statis 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 pra-penerbangan jika kedua hal berikut berlaku:

    1. Anda mengonfigurasi Google Distributed Cloud untuk menggunakan proxy.

    2. Anda menginstal salah satu paket berikut:

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

    Anda hanya dapat menjalankan kumpulan validasi lengkap jika 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 akan gagal saat Anda mencoba melakukan serangkaian validasi lengkap. Namun, Anda dapat melakukan kumpulan validasi yang lebih kecil dengan meneruskan flag --fast.

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

Langkah selanjutnya