Halaman ini menunjukkan cara mengupgrade bidang kontrol dan node pool secara terpisah di cluster pengguna yang dibuat dengan Google Distributed Cloud (khusus software) di VMware. Halaman ini ditujukan untuk administrator IT dan Operator yang mengelola siklus proses infrastruktur teknologi yang mendasarinya. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam Google Cloud konten, lihat Peran dan tugas pengguna GKE umum. Sebelum membaca dokumen ini, pastikan Anda memahami perencanaan dan pelaksanaan upgrade Google Distributed Cloud seperti yang dijelaskan dalam hal berikut:
Batasan
Mengupgrade node pool secara terpisah dari bidang kontrol memiliki batasan berikut:
Fitur ini didukung untuk node pool Ubuntu dan COS, tetapi tidak untuk node pool Windows.
Fitur ini tidak tersedia saat mengupgrade cluster non-lanjutan ke cluster lanjutan. Cluster non-lanjutan akan otomatis diupgrade ke cluster lanjutan di versi 1.33.
Versi 1.31: fitur ini tidak tersedia di cluster lanjutan.
Versi 1.32 dan yang lebih tinggi: fitur ini tersedia di cluster lanjutan.
Versi node pool load balancer harus sama dengan versi cluster. Mengupgrade node pool load balancer (node pool dengan
enableLoadBalancer: true) secara terpisah dari bidang kontrol atau memiliki ketidaksesuaian versi tidak didukung.
Mengapa harus mengupgrade bidang kontrol dan node pool secara terpisah?
Jika cluster Anda menggunakan versi 1.16 atau yang lebih tinggi, Anda dapat melewati versi minor saat mengupgrade node pool. Melakukan upgrade versi yang dilewati akan mengurangi waktu yang diperlukan untuk mengupgrade node pool secara berurutan dua versi. Selain itu, upgrade versi yang dilewati memungkinkan Anda meningkatkan waktu antara upgrade yang diperlukan untuk tetap menggunakan versi yang didukung. Mengurangi jumlah upgrade akan mengurangi gangguan workload dan waktu verifikasi. Untuk mengetahui informasi selengkapnya, lihat Melewati versi saat mengupgrade node pool.
Dalam situasi tertentu, Anda mungkin ingin mengupgrade beberapa, tetapi tidak semua node pool pekerja di cluster pengguna, misalnya:
Anda dapat mengupgrade bidang kontrol dan node pool yang memiliki traffic ringan atau yang menjalankan workload paling tidak penting terlebih dahulu. Setelah yakin bahwa workload Anda berjalan dengan benar di versi baru, Anda dapat mengupgrade node pool tambahan, hingga akhirnya semua node pool diupgrade.
Daripada satu masa pemeliharaan besar untuk upgrade cluster, Anda dapat mengupgrade cluster dalam beberapa masa pemeliharaan. Lihat Perkirakan komitmen waktu dan rencanakan masa pemeliharaan untuk mengetahui informasi tentang cara memperkirakan waktu untuk masa pemeliharaan.
Sebelum memulai
Di versi 1.29 dan yang lebih baru, pemeriksaan preflight sisi server diaktifkan secara default. Pastikan untuk meninjau aturan firewall Anda untuk membuat perubahan yang diperlukan.
Untuk mengupgrade ke versi 1.28 dan yang lebih baru, Anda harus mengaktifkan
kubernetesmetadata.googleapis.comdan memberikan peran IAMkubernetesmetadata.publisherke akun layanan logging-monitoring. Untuk mengetahui detailnya, lihat Persyaratan IAM dan Google API.Pastikan versi cluster saat ini adalah versi 1.14 atau yang lebih tinggi.
Mengupgrade bidang kontrol dan node pool yang dipilih
Mengupgrade bidang kontrol cluster pengguna secara terpisah dari node pool pekerja didukung menggunakan gkectl, Google Cloud CLI, dan Terraform.
Anda hanya dapat menggunakan Terraform untuk upgrade jika membuat cluster pengguna menggunakan Terraform.
gkectl
Tentukan versi sumber dan versi target dalam variabel placeholder berikut. Semua versi harus berupa nomor versi lengkap dalam bentuk
x.y.z-gke.Nseperti1.16.11-gke.25.Versi Deskripsi SOURCE_VERSIONVersi cluster saat ini. TARGET_VERSIONPilih versi target. Pilih patch yang direkomendasikan dari versi minor target. Upgrade workstation admin Anda ke versi target. Tunggu pesan yang menunjukkan bahwa upgrade berhasil.
Impor OS image yang sesuai ke vSphere:
gkectl prepare \ --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Ganti
ADMIN_CLUSTER_KUBECONFIGdengan jalur filekubeconfigcluster admin Anda.Buat perubahan berikut dalam file konfigurasi cluster pengguna:
Tetapkan kolom
gkeOnPremVersionke versi target,TARGET_VERSION.Untuk setiap node pool yang ingin Anda upgrade, tetapkan kolom
nodePools.nodePool[i].gkeOnPremVersionke string kosong.- Di versi 1.28 dan yang lebih baru, Anda dapat mempercepat upgrade node pool
dengan menetapkan
nodePools.nodePool[i].updateStrategy.rollingUpdate.maxSurgekolom ke nilai bilangan bulat yang lebih besar dari 1. Saat Anda mengupgrade node denganmaxSurge, beberapa node akan diupgrade pada waktu yang sama dengan waktu yang diperlukan untuk mengupgrade satu node.
- Di versi 1.28 dan yang lebih baru, Anda dapat mempercepat upgrade node pool
dengan menetapkan
Untuk setiap node pool yang tidak ingin Anda upgrade, tetapkan
nodePools.nodePool[i].gkeOnPremVersionke versi sumber,SOURCE_VERSION. Perhatikan bahwa Anda tidak dapat menahan node pool load balancer (node pool denganenableLoadBalancer: true); versinya harus cocok dengan versi cluster.
Contoh berikut menunjukkan sebagian file konfigurasi cluster pengguna. Contoh ini menentukan bahwa bidang kontrol dan
pool-1akan diupgrade keTARGET_VERSION, tetapipool-2akan tetap diSOURCE_VERSION.gkeOnPremVersion: TARGET_VERSION ... nodePools: - name: pool-1 gkeOnPremVersion: "" ... - name: pool-2 gkeOnPremVersion: SOURCE_VERSION ...Upgrade bidang kontrol dan node pool yang dipilih:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE
Ganti
USER_CLUSTER_CONFIGdengan jalur file konfigurasi cluster pengguna Anda.
Mengupgrade node pool tambahan
Dengan menggunakan contoh sebelumnya, anggaplah semuanya berfungsi dengan baik dengan pool-1, dan sekarang Anda ingin mengupgrade pool-2.
Di file konfigurasi cluster pengguna, di bagian
pool-2, tetapkangkeOnPremVersionke string kosong:gkeOnPremVersion: TARGET_VERSION ... nodePools: - name: pool-1 gkeOnPremVersion: "" ... - name: pool-2 gkeOnPremVersion: "" ...Jalankan
gkectl update clusteruntuk menerapkan perubahan:gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
gcloud CLI
Mengupgrade cluster pengguna memerlukan beberapa perubahan pada cluster admin. Perintah gcloud container vmware clusters upgrade secara otomatis melakukan hal berikut:
Mendaftarkan cluster admin ke GKE On-Prem API jika belum terdaftar.
Mendownload dan men-deploy paket komponen ke cluster admin. Versi komponen cocok dengan versi yang Anda tentukan untuk upgrade. Komponen ini memungkinkan cluster admin mengelola cluster pengguna pada versi tersebut.
Mengupgrade bidang kontrol
Lakukan langkah berikut untuk mengupgrade bidang kontrol cluster pengguna.
Update komponen Google Cloud CLI:
gcloud components updateUbah kebijakan upgrade di cluster:
gcloud container vmware clusters update USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --upgrade-policy control-plane-only=True
Ganti kode berikut:
USER_CLUSTER_NAME: Nama cluster pengguna yang akan diupgrade.PROJECT_ID: ID project host fleet tempat cluster pengguna menjadi anggota. Ini adalah project yang Anda tentukan saat cluster dibuat. Jika Anda membuat cluster menggunakangkectl, ini adalah project ID di kolomgkeConnect.projectIDdalam file konfigurasi cluster.REGION: Region tempat Google Cloud GKE On-Prem API berjalan dan menyimpan metadatanya. Jika Anda membuat cluster menggunakan klien GKE On-Prem API, ini adalah region yang Anda pilih saat membuat cluster. Jika Anda membuat cluster menggunakangkectl, ini adalah region yang Anda tentukan saat mendaftarkan cluster ke GKE On-Prem API.
Upgrade bidang kontrol cluster:
gcloud container vmware clusters upgrade USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=TARGET_VERSION
Ganti
TARGET_VERSIONdengan versi yang akan diupgrade. Pilih patch yang direkomendasikan dari versi minor target.Output dari perintah ini mirip dengan berikut ini:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
Dalam contoh output, string
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179adalah OPERATION_ID dari operasi yang berjalan lama. Anda dapat mengetahui status operasi dengan menjalankan perintah berikut di jendela terminal lain:gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=REGION
Mengupgrade node pool
Lakukan langkah-langkah berikut untuk mengupgrade node pool setelah bidang kontrol cluster pengguna diupgrade:
Dapatkan daftar node pool di cluster pengguna:
gcloud container vmware node-pools list --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
Untuk setiap node pool yang ingin Anda upgrade, jalankan perintah berikut:
gcloud container vmware node-pools update NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=TARGET_VERSION
Terraform
Update komponen Google Cloud CLI:
gcloud components updateJika belum, daftarkan cluster admin ke GKE On-Prem API. Setelah cluster terdaftar di GKE On-Prem API, Anda tidak perlu melakukan langkah ini lagi.
Download versi baru komponen dan deploy di cluster admin:
gcloud vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --required-platform-version=TARGET_VERSION
Ganti kode berikut:
USER_CLUSTER_NAME: Nama cluster pengguna yang akan diupgrade.PROJECT_ID: ID project host fleet tempat cluster pengguna menjadi anggota. Ini adalah project yang Anda tentukan saat cluster dibuat. Jika Anda membuat cluster menggunakangkectl, ini adalah project ID di kolomgkeConnect.projectIDdalam file konfigurasi cluster.REGION: Region tempat Google Cloud GKE On-Prem API berjalan dan menyimpan metadatanya. Jika Anda membuat cluster menggunakan klien GKE On-Prem API, ini adalah region yang Anda pilih saat membuat cluster. Jika Anda membuat cluster menggunakangkectl, ini adalah region yang Anda tentukan saat mendaftarkan cluster ke GKE On-Prem API.TARGET_VERSION: Versi yang akan diupgrade. Pilih patch yang direkomendasikan dari versi minor target.
Perintah ini mendownload versi komponen yang Anda tentukan di
--required-platform-versionke cluster admin, lalu men-deploy komponen. Komponen ini memungkinkan cluster admin mengelola cluster pengguna pada versi tersebut.Di file
main.tfyang Anda gunakan untuk membuat cluster pengguna, ubahon_prem_versiondi resource cluster ke versi baru.Tambahkan hal berikut ke resource cluster agar hanya bidang kontrol yang diupgrade:
upgrade_policy { control_plane_only = true }Lakukan inisialisasi dan buat rencana Terraform:
terraform initTerraform menginstal library yang diperlukan, seperti Google Cloud penyedia.
Tinjau konfigurasi dan buat perubahan jika diperlukan:
terraform planTerapkan rencana Terraform untuk membuat cluster pengguna:
terraform apply
Mengupgrade node pool
Lakukan langkah-langkah berikut untuk mengupgrade node pool setelah bidang kontrol cluster pengguna diupgrade:
Di
main.tfdalam resource untuk setiap node pool yang ingin Anda upgrade, tambahkan hal berikut:on_prem_version = "TARGET_VERSION"
Contoh:
resource "google_gkeonprem_vmware_node_pool" "nodepool-basic" { name = "my-nodepool" location = "us-west1" vmware_cluster = google_gkeonprem_vmware_cluster.default-basic.name config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = true } on_prem_version = "1.16.0-gke.0" }Lakukan inisialisasi dan buat rencana Terraform:
terraform initTinjau konfigurasi dan buat perubahan jika diperlukan:
terraform planTerapkan rencana Terraform untuk membuat cluster pengguna:
terraform apply
Pemecahan masalah
Jika mengalami masalah setelah mengupgrade node pool, Anda dapat melakukan roll back ke versi sebelumnya. Untuk mengetahui informasi selengkapnya, lihat Melakukan roll back node pool setelah upgrade.