Mengupgrade bidang kontrol dan node pool worker secara terpisah di cluster pengguna Google Distributed Cloud software only for VMware memungkinkan Anda memvalidasi kompatibilitas workload pada node pool individual dan menyebarkan upgrade di masa pemeliharaan yang lebih singkat.
Dokumen ini ditujukan untuk admin IT dan Operator yang mengelola siklus proses infrastruktur teknologi yang mendasarinya. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE umum. Sebelum memulai, pastikan Anda memahami Ringkasan upgrade, Aturan versi upgrade, Praktik terbaik upgrade, dan Mengupgrade cluster.
Batasan
Mengupgrade node pool secara terpisah dari bidang kontrol memiliki batasan berikut:
Fitur ini didukung untuk node pool Ubuntu dan Container-Optimized OS, 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 baru: 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 penyimpangan versi tidak didukung.
Mengapa mengupgrade bidang kontrol dan node pool secara terpisah?
Dalam situasi tertentu, Anda mungkin ingin mengupgrade beberapa, tetapi tidak semua, node pool worker di cluster pengguna:
Anda dapat mengupgrade bidang kontrol terlebih dahulu dan node pool yang memiliki traffic ringan atau menjalankan workload yang paling tidak penting. Setelah memverifikasi bahwa workload Anda berjalan dengan benar pada versi baru, Anda dapat mengupgrade node pool tambahan hingga semua node pool diupgrade.
Alih-alih menggunakan satu masa pemeliharaan besar untuk upgrade cluster, Anda dapat mengupgrade cluster di beberapa masa pemeliharaan. Untuk mengetahui informasi tentang cara memperkirakan waktu untuk masa pemeliharaan, lihat Memperkirakan komitmen waktu dan merencanakan masa pemeliharaan.
Anda dapat melewati versi minor saat mengupgrade node pool untuk mengurangi jumlah upgrade yang diperlukan agar tetap menggunakan versi yang didukung, sehingga menghemat waktu dan mengurangi gangguan workload. Untuk mengetahui informasi selengkapnya, lihat Melewati versi saat mengupgrade node pool.
Sebelum memulai
Di versi 1.29 dan yang lebih baru, pemeriksaan preflight sisi server diaktifkan secara default. Pastikan untuk meninjau aturan firewall Anda untuk melakukan 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 Google API dan Identity and Access Management (IAM).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 worker
didukung menggunakan gkectl, Google Cloud CLI, dan Terraform.
Anda hanya dapat menggunakan Terraform untuk upgrade jika Anda membuat cluster pengguna menggunakan Terraform.
gkectl
Tentukan versi sumber dan versi target dalam variabel placeholder berikut. Semua versi harus berupa nomor versi lengkap dalam format
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[i].gkeOnPremVersionke string kosong.- Di versi 1.28 dan yang lebih baru, Anda dapat mempercepat upgrade node pool
dengan menetapkan kolom
nodePools[i].updateStrategy.rollingUpdate.maxSurgeke nilai bilangan bulat yang lebih besar dari 1. Saat Anda mengupgrade node denganmaxSurge, beberapa node akan diupgrade dalam 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 kolom
Untuk setiap node pool yang tidak ingin Anda upgrade, tetapkan
nodePools[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 bagian dari file konfigurasi cluster pengguna. 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 di pool-1,
dan sekarang Anda ingin mengupgrade pool-2.
Dalam 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 di 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 gcloud 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 Google Cloud tempat 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 di 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 gcloud CLI:
gcloud components updateJika Anda belum melakukannya, daftarkan cluster admin di GKE On-Prem API. Setelah cluster didaftarkan di GKE On-Prem API, Anda tidak perlu melakukan langkah ini lagi.
Download komponen versi baru dan deploy di cluster admin:
gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --required-platform-version=TARGET_VERSION
Ganti kode berikut:
ADMIN_CLUSTER_NAME: Nama cluster admin.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 Google Cloud tempat 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 di 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.Dalam file
main.tfyang Anda gunakan untuk membuat cluster pengguna, ubahon_prem_versiondi resource cluster ke versi baru.Tambahkan kode 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 penyedia Google Cloud.
Tinjau konfigurasi dan buat perubahan jika diperlukan:
terraform planTerapkan Terraform plan untuk mengupgrade bidang kontrol 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 kode 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 = false } on_prem_version = "1.16.0-gke.0" }Lakukan inisialisasi dan buat rencana Terraform:
terraform initTinjau konfigurasi dan buat perubahan jika diperlukan:
terraform planTerapkan Terraform plan untuk mengupgrade node pool:
terraform apply
Pemecahan masalah
Jika mengalami masalah setelah mengupgrade node pool, Anda dapat melakukan roll back ke versi sebelumnya. Untuk mengetahui informasi selengkapnya, lihat Me-roll back node pool setelah upgrade.