Mengupgrade node pool

Halaman ini menunjukkan cara mengupgrade panel 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 konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum. Sebelum membaca dokumen ini, pastikan Anda memahami cara merencanakan dan menjalankan upgrade Google Distributed Cloud seperti yang dijelaskan di bawah ini:

Mengupgrade node pool secara terpisah dari bidang kontrol didukung untuk node pool Ubuntu dan COS, tetapi tidak untuk node pool Windows.

Mengapa mengupgrade node pool dan panel kontrol 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 lewati akan mengurangi waktu upgrade node pool dua versi secara berurutan menjadi setengah. Selain itu, upgrade versi lewati 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 informasi selengkapnya, lihat Lewati versi saat mengupgrade node pool.

  • Dalam situasi tertentu, Anda mungkin ingin mengupgrade beberapa, tetapi tidak semua node pool di cluster pengguna, misalnya:

    • Anda dapat mengupgrade platform kontrol dan node pool yang memiliki traffic ringan atau yang menjalankan workload yang 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 periode pemeliharaan besar untuk upgrade cluster, Anda dapat mengupgrade cluster dalam beberapa periode pemeliharaan. Lihat Memperkirakan komitmen waktu dan merencanakan periode pemeliharaan untuk mengetahui informasi tentang cara memperkirakan waktu untuk periode pemeliharaan.

Sebelum memulai

  1. Di versi 1.29 dan yang lebih baru, pemeriksaan pra-penerbangan sisi server diaktifkan secara default. Pastikan untuk meninjau aturan firewall guna melakukan perubahan yang diperlukan.

  2. Untuk mengupgrade ke versi 1.28 dan yang lebih baru, Anda harus mengaktifkan kubernetesmetadata.googleapis.com dan memberikan peran IAM kubernetesmetadata.publisher ke akun layanan pemantauan logging. Untuk mengetahui detailnya, lihat persyaratan Google API dan IAM.

  3. 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

  1. Tentukan versi sumber dan versi target dalam variabel placeholder berikut. Semua versi harus berupa nomor versi lengkap dalam format x.y.z-gke.N seperti 1.16.11-gke.25.

    Versi Deskripsi
    SOURCE_VERSION Versi cluster saat ini.
    TARGET_VERSION Pilih versi target. Pilih patch yang direkomendasikan dari versi minor target.
  2. Upgrade workstation admin Anda ke versi target. Tunggu pesan yang menunjukkan bahwa upgrade telah berhasil.

  3. Impor image OS 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_KUBECONFIG dengan jalur file kubeconfig cluster admin Anda.

  4. Buat perubahan berikut dalam file konfigurasi cluster pengguna:

    • Tetapkan kolom gkeOnPremVersion ke versi target, TARGET_VERSION.

    • Untuk setiap node pool yang ingin Anda upgrade, tetapkan kolom nodePools.nodePool[i].gkeOnPremVersion ke string kosong.

    • Untuk setiap node pool yang tidak ingin Anda upgrade, tetapkan nodePools.nodePool[i].gkeOnPremVersion ke versi sumber, SOURCE_VERSION.

    Contoh berikut menunjukkan sebagian file konfigurasi cluster pengguna. Ini menentukan bahwa bidang kontrol dan pool-1 akan diupgrade ke TARGET_VERSION, tetapi pool-2 akan tetap di SOURCE_VERSION.

    gkeOnPremVersion: TARGET_VERSION
    ...
    nodePools:
    - name: pool-1
      gkeOnPremVersion: ""
      ...
    - name: pool-2
      gkeOnPremVersion: SOURCE_VERSION
      ...
    
  5. Upgrade bidang kontrol dan node pool yang dipilih:

    gkectl upgrade cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG_FILE
    

    Ganti USER_CLUSTER_CONFIG dengan jalur file konfigurasi cluster pengguna Anda.

Mengupgrade node pool tambahan

Dengan menggunakan contoh sebelumnya, misalkan semuanya berfungsi dengan baik dengan pool-1, dan sekarang Anda ingin mengupgrade pool-2.

  1. Di file konfigurasi cluster pengguna, pada bagian pool-2, tetapkan gkeOnPremVersion ke string kosong:

    gkeOnPremVersion: TARGET_VERSION
    ...
    nodePools:
    - name: pool-1
      gkeOnPremVersion: ""
      ...
    - name: pool-2
      gkeOnPremVersion: ""
      ...
    
  2. Jalankan gkectl update cluster untuk 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 panel kontrol cluster pengguna.

  1. Update komponen Google Cloud CLI:

    gcloud components update
    
  2. Ubah 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 menggunakan gkectl, ini adalah project ID di kolom gkeConnect.projectID dalam file konfigurasi cluster.

    • REGION: Region Google Cloud tempat GKE On-Prem API berjalan dan menyimpan metadata-nya. Jika Anda membuat cluster menggunakan klien GKE On-Prem API, ini adalah region yang Anda pilih saat membuat cluster. Jika Anda membuat cluster menggunakan gkectl, ini adalah region yang Anda tentukan saat mendaftarkan cluster di GKE On-Prem API.

  3. Upgrade bidang kontrol cluster:

    gcloud container vmware clusters upgrade USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --version=TARGET_VERSION
    

    Ganti TARGET_VERSION dengan versi yang akan diupgrade. Pilih patch yang direkomendasikan dari versi minor target.

    Output dari perintah ini akan 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-75e59179 adalah 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 panel kontrol cluster pengguna telah diupgrade:

  1. Dapatkan daftar node pool di cluster pengguna:

    gcloud container vmware node-pools list
      --cluster=USER_CLUSTER_NAME  \
      --project=PROJECT_ID \
      --location=REGION
    
  2. Untuk setiap node pool yang ingin diupgrade, 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

  1. Update komponen Google Cloud CLI:

    gcloud components update
    
  2. Jika Anda belum melakukannya, daftarkan cluster admin di GKE On-Prem API. Setelah cluster terdaftar di GKE On-Prem API, Anda tidak perlu melakukan langkah ini lagi.

  3. 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 menggunakan gkectl, ini adalah project ID di kolom gkeConnect.projectID dalam file konfigurasi cluster.

    • REGION: Region Google Cloud tempat GKE On-Prem API berjalan dan menyimpan metadata-nya. Jika Anda membuat cluster menggunakan klien GKE On-Prem API, ini adalah region yang Anda pilih saat membuat cluster. Jika Anda membuat cluster menggunakan gkectl, 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-version ke cluster admin, lalu men-deploy komponen. Komponen ini memungkinkan cluster admin mengelola cluster pengguna pada versi tersebut.

  4. Dalam file main.tf yang Anda gunakan untuk membuat cluster pengguna, ubah on_prem_version di resource cluster ke versi baru.

  5. Tambahkan hal berikut ke resource cluster sehingga hanya bidang kontrol yang diupgrade:

    upgrade_policy {
      control_plane_only = true
    }
    
  6. Lakukan inisialisasi dan buat rencana Terraform:

    terraform init
    

    Terraform menginstal library yang diperlukan, seperti penyedia Google Cloud.

  7. Tinjau konfigurasi dan buat perubahan jika diperlukan:

    terraform plan
    
  8. Terapkan rencana Terraform untuk membuat cluster pengguna:

    terraform apply
    

Mengupgrade node pool

Lakukan langkah-langkah berikut untuk mengupgrade node pool setelah panel kontrol cluster pengguna diupgrade:

  1. Di main.tf dalam 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"
    }
    
  2. Lakukan inisialisasi dan buat rencana Terraform:

    terraform init
    
  3. Tinjau konfigurasi dan buat perubahan jika diperlukan:

    terraform plan
    
  4. Terapkan 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 informasi selengkapnya, lihat Melakukan roll back node pool setelah upgrade.