Mengupgrade cluster atau kumpulan node

Dokumen ini menjelaskan cara mengupgrade cluster dan node pool di Google Distributed Cloud. Dokumen ini menjelaskan langkah-langkah untuk mengupgrade workstation admin, cluster pengguna, dan cluster admin. Untuk cluster pengguna, dokumen ini menyediakan langkah-langkah untuk mengupgrade bidang kontrol dan kumpulan node secara bersamaan, atau secara terpisah.

Sebelum melanjutkan, sebaiknya tinjau dokumentasi berikut:

  • Ringkasan upgrade
    Di antara hal-hal lainnya, dokumen ini menjelaskan aturan versi dan distorsi versi yang didukung untuk upgrade, yang telah berubah untuk versi 1.28 dan yang lebih baru.

  • Praktik terbaik upgrade
    Dokumen ini memberikan checklist dan praktik terbaik untuk mengupgrade cluster.

Meninjau aturan firewall Anda

Pada versi 1.29 dan yang lebih baru, pemeriksaan preflight sisi server diaktifkan secara default. Pemeriksaan preflight sisi server memerlukan aturan firewall tambahan. Di Aturan firewall untuk cluster admin, telusuri "Pemeriksaan preflight" dan pastikan semua aturan firewall yang diperlukan telah dikonfigurasi.

Dengan pemeriksaan preflight sisi server, saat Anda mengupgrade cluster pengguna menggunakan gkectl, pemeriksaan preflight dijalankan di cluster admin, bukan secara lokal di workstation admin. Pemeriksaan preflight sisi server juga dijalankan di cluster admin saat Anda menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform untuk mengupgrade cluster.

Saat Anda mengupgrade cluster admin, Google Distributed Cloud akan men-deploy cluster Kubernetes dalam Docker (jenis) untuk menghosting pengontrol Kubernetes sementara yang diperlukan untuk mengupgrade cluster admin. Cluster sementara ini disebut cluster bootstrap. Pemeriksaan preflight sisi server dijalankan di cluster bootstrap saat Anda mengupgrade cluster admin.

Persyaratan Google API dan IAM

Untuk mengupgrade cluster ke versi 1.28 dan yang lebih baru, Anda harus mengaktifkan kubernetesmetadata.googleapis.com dan memberikan peran IAM kubernetesmetadata.publisher ke akun layanan logging-pemantauan. Perubahan ini diperlukan agar dapat menggunakan Cloud Monitoring.

  1. Aktifkan kubernetesmetadata.googleapis.com:

    gcloud services enable --project PROJECT_ID  \
        kubernetesmetadata.googleapis.com
    

    Ganti PROJECT_ID dengan ID project host perangkat tempat cluster pengguna menjadi anggota. Project 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.

  2. Jika organisasi Anda telah menyiapkan daftar yang diizinkan yang memungkinkan traffic dari Google API dan alamat lainnya melewati server proxy Anda, tambahkan kubernetesmetadata.googleapis.com ke daftar yang diizinkan.

  3. Berikan peran kubernetesmetadata.publisher ke akun layanan pemantauan logging:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role "roles/kubernetesmetadata.publisher"
    

    Ganti SERVICE_ACCOUNT_EMAIL dengan alamat email akun layanan pemantauan logging Anda.

Persyaratan IAM untuk mengupgrade cluster pengguna

Lewati bagian ini jika Anda berencana menggunakan gkectl untuk upgrade cluster pengguna.

Jika ingin menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform untuk mengupgrade cluster pengguna, dan Anda bukan pemilik project, Anda harus diberi peran Identity and Access Management roles/gkeonprem.admin pada project Google Cloud tempat cluster dibuat. Untuk mengetahui detail tentang izin yang disertakan dalam peran ini, lihat peran lokal GKE dalam dokumentasi IAM.

Untuk menggunakan konsol guna mengupgrade cluster, minimal Anda juga memerlukan hal berikut:

  • roles/container.viewer. Peran ini memungkinkan pengguna melihat halaman Cluster GKE dan resource container lainnya di konsol. Untuk mengetahui detail tentang izin yang disertakan dalam peran ini, atau untuk memberikan peran dengan izin baca/tulis, lihat peran Kubernetes Engine dalam dokumentasi IAM.

  • roles/gkehub.viewer. Peran ini memungkinkan pengguna melihat cluster di konsol. Untuk mengetahui detail tentang izin yang disertakan dalam peran ini, atau untuk memberikan peran dengan izin baca/tulis,lihat peran GKE Hub dalam dokumentasi IAM.

Membuat perubahan konfigurasi sebelum atau setelah upgrade

Jika perlu melakukan perubahan konfigurasi pada cluster, lakukan update cluster sebelum atau sesudah upgrade. Satu-satunya perubahan pada konfigurasi cluster untuk upgrade haruslah versi. Bergantung pada versi dan jenis cluster, perubahan konfigurasi lainnya akan diabaikan secara diam-diam atau menyebabkan upgrade gagal. Untuk informasi selengkapnya, lihat Menghapus perubahan yang tidak didukung untuk membatalkan pemblokiran upgrade.

Mengupgrade workstation admin Anda

Anda perlu mengupgrade workstation admin jika berencana menggunakan gkectl untuk mengupgrade cluster pengguna.

Jika berencana menggunakan konsol, gcloud CLI, atau Terraform untuk mengupgrade cluster pengguna, Anda dapat melewati upgrade workstation admin untuk saat ini. Namun, Anda harus mengupgrade workstation admin saat siap mengupgrade cluster admin karena hanya gkectl yang mendukung upgrade cluster admin.

Cara mengupgrade workstation admin bergantung pada cara Anda membuatnya: gkeadm atau user-mmanaged.

Gkeadm

Menemukan file yang diperlukan

Sebelum membuat workstation admin, Anda harus mengisi file konfigurasi workstation admin yang dibuat oleh gkeadm create config. Nama default untuk file ini adalah admin-ws-config.yaml.

Selain itu, workstation Anda memiliki file informasi. Nama default file ini sama dengan nama workstation admin Anda.

Temukan file konfigurasi workstation admin dan file informasi Anda. Anda meminta mereka untuk melakukan langkah-langkah upgrade. Jika file ini berada di direktori Anda saat ini dan memiliki nama default, Anda tidak perlu menentukannya saat menjalankan perintah upgrade. Jika file ini berada di direktori lain, atau jika Anda telah mengubah nama file, tentukan menggunakan tanda --config dan --info-file.

Jika file informasi output tidak ada, Anda dapat membuat ulang file. Lihat Membuat ulang file informasi jika tidak ada.

Upgrade

Untuk mengupgrade workstation admin:

  1. Unduh gkeadm:

    gkeadm upgrade gkeadm --target-version TARGET_VERSION
    

    Ganti TARGET_VERSION dengan versi target upgrade Anda. Anda harus menentukan nomor versi lengkap dalam bentuk X.Y.Z-gke.N.. Untuk mengetahui daftar versi Google Distributed Cloud, lihat Pembuatan Versi.

  2. Upgrade workstation admin Anda:

    gkeadm upgrade admin-workstation --config AW_CONFIG_FILE \
        --info-file INFO_FILE
    

    Ganti kode berikut:

    • AW_CONFIG_FILE: jalur file konfigurasi workstation admin Anda. Anda dapat menghilangkan flag ini jika file berada di direktori Anda saat ini dan memiliki nama admin-ws-config.yaml.

    • INFO_FILE: jalur file informasi Anda. Anda dapat menghilangkan flag ini jika file berada di direktori saat ini. Nama default file ini sama dengan nama workstation admin Anda.

Dikelola pengguna

Di workstation admin, buka direktori tempat Anda ingin menginstal versi baru gkectl.

Unduh gkectl:

gsutil cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./
chmod +x gkectl

Ganti VERSION dengan versi target upgrade Anda. Contoh: 1.29.100-gke.248.

Download paket Google Distributed Cloud. Pastikan versi cocok dengan yang Anda gunakan untuk mendownload gkectl:

gsutil cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./

Memeriksa versi yang tersedia untuk upgrade cluster

Jalankan perintah berikut untuk melihat versi yang tersedia untuk diupgrade:

gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Output menunjukkan versi saat ini dan versi yang tersedia untuk upgrade.

Jika Anda berencana menggunakan konsol, baik gcloud CLI, atau Terraform untuk upgrade, perlu waktu sekitar 7 hingga 10 hari setelah rilis agar versi tersebut tersedia di GKE On-Prem API di semua region Google Cloud. Konsol hanya mencantumkan versi yang tersedia untuk upgrade cluster pengguna. Langkah-langkah untuk mengupgrade cluster pengguna menggunakan gcloud CLI atau Terraform mencakup langkah untuk menjalankan gcloud container vmware clusters query-version-config guna mendapatkan versi yang tersedia untuk upgrade.

Mengupgrade cluster pengguna

Anda dapat menggunakan gkectl, konsol, gcloud CLI, atau Terraform untuk mengupgrade cluster pengguna. Untuk informasi tentang cara menentukan alat yang akan digunakan, lihat Memilih alat untuk mengupgrade cluster pengguna.

Gkectl

Bersiap untuk mengupgrade cluster pengguna

Lakukan langkah-langkah berikut di workstation admin Anda:

  1. Jalankan gkectl prepare untuk mengimpor OS image ke vSphere:

    gkectl prepare \
      --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    
  2. Jika cluster Anda memiliki kumpulan node Windows, jalankan gkectl prepare windows, dan update kolom osImage untuk kumpulan node. Untuk petunjuk mendetail, lihat Mengupgrade cluster pengguna dengan node pool Windows.

  3. Di file konfigurasi cluster pengguna, tetapkan gkeOnPremVersion ke versi target upgrade Anda.

  4. Khusus kumpulan node Ubuntu dan COS: Menentukan kumpulan node yang ingin Anda upgrade. Mengupgrade kumpulan node secara terpisah dari bidang kontrol didukung untuk kumpulan node Ubuntu dan COS, tetapi tidak untuk kumpulan node Windows.

    Di file konfigurasi cluster pengguna, tunjukkan kumpulan node mana yang ingin Anda upgrade, seperti berikut:

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

    • Untuk setiap kumpulan node yang tidak ingin Anda upgrade, tetapkan nodePools.nodePool[i].gkeOnPremVersion ke versi saat ini.

    Misalnya, cluster pengguna Anda menggunakan versi 1.15.5-gke.41 dan memiliki dua kumpulan node: pool-1 dan pool-2. Misalkan juga Anda ingin mengupgrade bidang kontrol dan pool-1 ke 1.16.3-gke.45, tetapi Anda ingin pool-2 tetap dalam versi 1.15.5-gke.41. Bagian file konfigurasi cluster pengguna berikut menunjukkan cara menentukan contoh ini:

    gkeOnPremVersion: 1.16.3-gke.45
    
    nodePools:
    - name: pool-1
      gkeOnPremVersion: ""
      cpus: 4
      memoryMB: 8192
      replicas: 3
      osImageType: ubuntu_containerd
    - name: pool-2
      gkeOnPremVersion: 1.15.5-gke.41
      cpus: 4
      memoryMB: 8192
      replicas: 5
      osImageType: ubuntu_containerd
    

Menjalankan pemeriksaan preflight

Saat mengupgrade ke versi 1.29 dan yang lebih baru, Anda dapat menjalankan pemeriksaan preflight sebelum mengupgrade cluster pengguna:

gkectl upgrade cluster \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  --config USER_CLUSTER_CONFIG \
  --dry-run

Dengan flag --dry-run, gkectl upgrade cluster menjalankan pemeriksaan preflight, tetapi tidak memulai proses upgrade. Meskipun versi Google Distributed Cloud sebelumnya menjalankan pemeriksaan preflight, versi tersebut tidak dapat dijalankan secara terpisah dari upgrade. Dengan menambahkan tanda --dry-run, Anda dapat menemukan dan memperbaiki masalah apa pun yang ditemukan oleh pemeriksaan preflight pada cluster pengguna sebelum upgrade.

Jalankan gkectl upgrade cluster

Ada dua variasi perintah gkectl upgrade cluster:

  • Asinkron: (direkomendasikan)
    Dengan variasi asinkron, perintah akan memulai upgrade dan kemudian diselesaikan. Anda tidak perlu melihat output perintah selama proses upgrade. Sebagai gantinya, Anda dapat memeriksa progres upgrade secara berkala dengan menjalankan gkectl list clusters dan gkectl describe clusters. Untuk menggunakan variasi asinkron, sertakan flag --async dalam perintah.

  • Sinkron:
    Dengan variasi sinkron, perintah gkectl upgrade cluster menghasilkan pesan status ke workstation admin saat upgrade berlangsung.

Upgrade asinkron

  1. Lewati langkah ini jika Anda mengupgrade ke versi yang lebih baru dari 1.16.

    Jika Anda menggunakan kredensial yang disiapkan dan registry pribadi untuk cluster pengguna, pastikan kredensial registry pribadi disiapkan sebelum mengupgrade cluster pengguna. Untuk mengetahui informasi tentang cara menyiapkan kredensial registry pribadi, lihat Mengonfigurasi kredensial yang disiapkan untuk cluster pengguna.

  2. Di workstation admin, mulai upgrade asinkron:

    gkectl upgrade cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG \
      --async
    

    Perintah sebelumnya selesai, dan Anda dapat terus menggunakan workstation admin saat upgrade sedang berlangsung.

  3. Untuk melihat status upgrade:

    gkectl list clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Output menunjukkan nilai untuk cluster STATE. Jika cluster masih diupgrade, nilai STATE adalah UPGRADING. Contoh:

    NAMESPACE             NAME    READY   STATE       AGE   VERSION
    my-uc-gkeonprem-mgmt  my-uc   False   UPGRADING   9h    1.29.0-gke.1
    

    Nilai yang memungkinkan untuk STATE adalah PROVISIONING, UPGRADING, DELETING, UPDATING, RUNNING, RECONCILING, ERROR, dan UNKNOWN.

  4. Untuk mendapatkan detail selengkapnya tentang progres upgrade dan peristiwa cluster:

    gkectl describe clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --cluster USER_CLUSTER_NAME -v 5
    

    Output akan menampilkan resource kustom OnPremUserCluster untuk cluster pengguna yang ditentukan, yang mencakup status, kondisi, dan peristiwa cluster.

    Kami mencatat peristiwa untuk awal dan akhir setiap fase upgrade penting, termasuk:

    • ControlPlaneUpgrade
    • MasterNodeUpgrade
    • AddonsUpgrade
    • NodePoolsUpgrade

    Contoh output:

    Events:
    Type    Reason                      Age    From                            Message
    ----     ------                     ----   ----                            -------
    Normal  NodePoolsUpgradeStarted     22m    onprem-user-cluster-controller  Creating or updating node pools: pool-2: Creating or updating node pool
    Normal  AddonsUpgradeStarted        22m    onprem-user-cluster-controller  Creating or updating addon workloads
    Normal  ControlPlaneUpgradeStarted  25m    onprem-user-cluster-controller  Creating or updating cluster control plane workloads: deploying user-kube-apiserver-base, ...: 14/15 pods are ready
    Normal  ControlPlaneUpgradeFinished 23m    onprem-user-cluster-controller  Control plane is running
    
  5. Setelah upgrade selesai, gkectl list clusters menampilkan STATUS dari RUNNING:

    NAMESPACE             NAME    READY   STATE     AGE     VERSION
    my-uc-gkeonprem-mgmt  my-uc   True    RUNNING   9h      1.29.0-gke.1
    

    Selain itu, setelah upgrade selesai, gkectl describe clusters akan menampilkan kolom Last GKE On Prem Version di bagian Status. Contoh:

    Status:
    Cluster State:  RUNNING
    Last GKE On Prem Version:  1.29.0-gke.1
    

Memecahkan masalah upgrade asinkron

Untuk upgrade asinkron, durasi waktu tunggu didasarkan pada jumlah node dalam cluster. Jika upgrade memerlukan waktu lebih lama dari durasi waktu tunggu, status cluster akan diubah dari UPGRADING menjadi ERROR, dengan peristiwa yang menyatakan bahwa waktu operasi upgrade telah habis. Perlu diperhatikan bahwa status ERROR di sini berarti upgrade memerlukan waktu lebih lama dari yang diperkirakan, tetapi belum dihentikan. Pengontrol melanjutkan rekonsiliasi dan terus mencoba kembali operasi.

Biasanya waktu tunggu disebabkan oleh deadlock yang disebabkan oleh PodDisruptionBudget (PDB). Dalam hal ini, Pod tidak dapat dikeluarkan dari node lama, dan node lama tidak dapat dikosongkan. Jika penghapusan Pod memerlukan waktu lebih dari 10 menit, kita akan menulis peristiwa ke objek OnPremUserCluster. Anda dapat merekam peristiwa dengan menjalankan gkectl describe clusters. Kemudian Anda dapat menyesuaikan PDB agar {i>node<i} dapat mengalir. Setelah itu, upgrade dapat dilanjutkan dan akhirnya selesai.

Contoh peristiwa:

Warning  PodEvictionTooLong  96s (x2 over 4m7s)  onprem-user-cluster-controller
Waiting too long(>10m0.00000003s) for (kube-system/coredns-856d6dbfdf-dl6nz) eviction.

Selain itu, jika upgrade diblokir atau gagal, Anda dapat menjalankan gkectl diagnose untuk memeriksa masalah umum cluster. Berdasarkan hasilnya, Anda dapat memutuskan apakah akan melakukan perbaikan manual atau menghubungi tim dukungan Anthos untuk mendapatkan bantuan lebih lanjut.

Upgrade sinkron

Perintah gkectl upgrade menjalankan pemeriksaan preflight. Jika pemeriksaan preflight gagal, perintah akan diblokir. Anda harus memperbaiki kegagalan, atau menggunakan flag --skip-preflight-check-blocking. Sebaiknya hanya lewati pemeriksaan preflight jika yakin tidak ada kegagalan kritis.

Lanjutkan dengan langkah-langkah berikut di workstation admin Anda:

  1. Lewati langkah ini jika Anda mengupgrade ke versi yang lebih baru dari 1.16.

    Jika Anda menggunakan kredensial yang disiapkan dan registry pribadi untuk cluster pengguna, pastikan kredensial registry pribadi disiapkan sebelum mengupgrade cluster pengguna. Untuk mengetahui informasi tentang cara menyiapkan kredensial registry pribadi, lihat Mengonfigurasi kredensial yang disiapkan untuk cluster pengguna.

  2. Upgrade cluster:

    gkectl upgrade cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG_FILE
    
  3. Jika Anda mengupgrade ke versi 1.14.0 atau yang lebih baru, file kubeconfig baru akan dibuat untuk cluster pengguna yang menimpa file yang ada. Untuk melihat detail cluster dalam file, jalankan perintah berikut:

    kubectl config view --kubeconfig USER_CLUSTER_KUBECONFIG

Mengupgrade node pool tambahan

Jika Anda hanya mengupgrade bidang kontrol cluster pengguna, atau mengupgrade bidang kontrol dan beberapa, tetapi tidak semua kumpulan node, lakukan langkah-langkah berikut untuk mengupgrade kumpulan node:

  1. Edit file konfigurasi cluster pengguna Anda. Untuk setiap kumpulan node yang ingin Anda upgrade, hapus kolom nodePools.nodePool[i].gkeOnPremVersion, atau tetapkan ke string kosong, seperti yang ditunjukkan pada contoh berikut:

    gkeOnPremVersion: 1.16.3-gke.45
    
    nodePools:
    - name: pool-1
      gkeOnPremVersion: ""
      cpus: 4
      memoryMB: 8192
      replicas: 3
      osImageType: ubuntu_containerd
    - name: pool-2
      gkeOnPremVersion: ""
      cpus: 4
      memoryMB: 8192
      replicas: 5
      osImageType: ubuntu_containerd
    
  2. Jalankan gkectl update cluster untuk menerapkan perubahan:

    gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin Anda

    • USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna Anda

Jika mengalami masalah setelah mengupgrade kumpulan node, Anda dapat melakukan roll back ke versi sebelumnya. Untuk informasi selengkapnya, lihat Melakukan roll back kumpulan node setelah upgrade.

Melanjutkan upgrade

Jika upgrade cluster pengguna terganggu, Anda dapat melanjutkan upgrade cluster pengguna dengan menjalankan perintah upgrade yang sama menggunakan tanda --skip-validation-all:

gkectl upgrade cluster \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  --config USER_CLUSTER_CONFIG_FILE \
  --skip-validation-all

Konsol

Upgrade cluster pengguna memerlukan beberapa perubahan pada cluster admin. Konsol akan 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.

Untuk mengupgrade cluster pengguna:

  1. Di konsol, buka halaman Ringkasan cluster Google Kubernetes Engine.

    Buka cluster GKE

  2. Pilih project Google Cloud, lalu pilih cluster yang ingin Anda upgrade.

  3. Di panel Details, klik Detail selengkapnya.

  4. Di bagian Cluster basics, klik Upgrade.

  5. Dalam daftar Choose target version, pilih versi yang ingin Anda upgrade. Daftar hasil seleksi hanya berisi rilis patch terbaru.

  6. Klik Upgrade.

Sebelum cluster diupgrade, pemeriksaan preflight akan dijalankan untuk memvalidasi status cluster dan kondisi node. Jika lulus pemeriksaan preflight, cluster pengguna akan diupgrade. Perlu waktu sekitar 30 menit untuk menyelesaikan upgrade.

Untuk melihat status upgrade, klik Show Details di tab Cluster Details.

gcloud CLI

Upgrade cluster pengguna memerlukan beberapa perubahan pada cluster admin. Perintah gcloud container vmware clusters upgrade akan 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.

Untuk mengupgrade cluster pengguna:

  1. Update komponen Google Cloud CLI:

    gcloud components update
    
  2. Khusus kumpulan node Ubuntu dan COS: Jika Anda hanya ingin mengupgrade bidang kontrol cluster pengguna dan membiarkan semua kumpulan node pada versi saat ini, 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 perangkat tempat cluster pengguna menjadi anggota. Project 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 menjalankan 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 menggunakan gkectl, ini adalah region yang Anda tentukan saat mendaftarkan cluster di GKE On-Prem API.

  3. Dapatkan daftar versi yang tersedia untuk diupgrade:

    gcloud container vmware clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    Output perintah ini akan mirip dengan berikut ini:

    versions:
    - version: 1.16.3-gke.45
    - version: 1.16.2-gke.28
    - version: 1.16.1-gke.45
    - version: 1.16.0-gke.669
    - version: 1.15.6-gke.25
    - version: 1.15.5-gke.41
    
    An Anthos version must be made available on the admin cluster ahead of the user
    cluster creation or upgrade. Versions annotated with isInstalled=true are
    installed on the admin cluster for the purpose of user cluster creation or
    upgrade whereas other version are released and will be available for upgrade
    once dependencies are resolved.
    
    To install the version in the admin cluster, run:
    $ gcloud container vmware admin-clusters update my-admin-cluster --required-platform-version=VERSION
    

    Anda dapat mengabaikan pesan setelah daftar versi. Tidak masalah apakah versi yang sedang Anda upgrade diinstal di cluster admin. Perintah upgrade akan mendownload dan men-deploy paket komponen yang sesuai dengan versi yang Anda tentukan dalam perintah upgrade.

  4. Mengupgrade cluster. Jika Anda menjalankan perintah update untuk mengubah kebijakan upgrade menjadi control-plane-only=True, hanya bidang kontrol cluster yang akan diupgrade. Jika tidak, bidang kontrol cluster dan semua kumpulan node akan diupgrade.

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

    Ganti VERSION dengan versi Google Distributed Cloud yang ingin Anda upgrade. Tentukan versi dari output perintah sebelumnya. Sebaiknya upgrade ke versi patch terbaru.

    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.
    

    Pada contoh output, string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 adalah OPERATION_ID dari operasi yang berjalan lama. Anda dapat mengetahui status operasi ini dengan menjalankan perintah berikut di jendela terminal yang lain:

    gcloud container vmware operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=REGION
    

Mengupgrade node pool

Jika Anda memilih untuk hanya mengupgrade bidang kontrol cluster pengguna, lakukan langkah-langkah berikut untuk mengupgrade kumpulan node setelah bidang kontrol cluster pengguna diupgrade:

  1. Dapatkan daftar kumpulan node di cluster pengguna:

    gcloud container vmware node-pools list
      --cluster=USER_CLUSTER_NAME  \
      --project=PROJECT_ID \
      --location=REGION
    
  2. Untuk setiap kumpulan node 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=VERSION
    

Terraform

  1. Update komponen Google Cloud CLI:

    gcloud components update
    
  2. Jika 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.

  3. Dapatkan daftar versi yang tersedia untuk diupgrade:

    gcloud container vmware clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    Ganti kode berikut:

    • USER_CLUSTER_NAME: Nama cluster pengguna.

    • PROJECT_ID: ID project fleet tempat cluster pengguna tersebut menjadi anggota. Project 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 menjalankan dan menyimpan metadatanya. Dalam file main.tf yang Anda gunakan untuk membuat cluster pengguna, region berada di kolom location dari resource cluster.

    Output perintah ini akan mirip dengan berikut ini:

    versions:
    - version: 1.16.3-gke.45
    - version: 1.16.2-gke.28
    - version: 1.16.1-gke.45
    - version: 1.16.0-gke.669
    - version: 1.15.6-gke.25
    - version: 1.15.5-gke.41
    
    An Anthos version must be made available on the admin cluster ahead of the user
    cluster creation or upgrade. Versions annotated with isInstalled=true are
    installed on the admin cluster for the purpose of user cluster creation or
    upgrade whereas other version are released and will be available for upgrade
    once dependencies are resolved.
    
    To install the version in the admin cluster, run:
    $ gcloud container vmware admin-clusters update my-admin-cluster --required-platform-version=VERSION
    
  4. Download komponen versi baru dan deploy di cluster admin:

    gcloud vmware admin-clusters update ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --required-platform-version=VERSION
    

    Perintah ini akan 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.

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

  6. Khusus kumpulan node Ubuntu dan COS: Jika Anda hanya ingin mengupgrade bidang kontrol cluster pengguna dan membiarkan semua kumpulan node pada versi saat ini, tambahkan kode berikut ke resource cluster:

    upgrade_policy {
      control_plane_only = true
    }
    
  7. Lakukan inisialisasi dan buat paket Terraform:

    terraform init
    

    Terraform menginstal semua library yang diperlukan, seperti penyedia Google Cloud.

  8. Tinjau konfigurasi dan buat perubahan jika diperlukan:

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

    terraform apply
    

Mengupgrade node pool

Jika Anda memilih untuk hanya mengupgrade bidang kontrol cluster pengguna, lakukan langkah-langkah berikut untuk mengupgrade kumpulan node tambahan setelah bidang kontrol cluster pengguna diupgrade:

  1. Di main.tf pada resource untuk setiap kumpulan node yang ingin Anda upgrade, tambahkan hal berikut:

    on_prem_version = "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 paket Terraform:

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

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

    terraform apply
    

Mengupgrade cluster admin

Setelah mengupgrade cluster pengguna, Anda dapat mengupgrade cluster admin.

Sebelum memulai:

  1. Tentukan apakah sertifikat Anda sudah yang terbaru, dan perpanjang jika perlu.

  2. Jika mengupgrade ke versi 1.13 atau yang lebih baru, Anda harus mendaftarkan cluster admin terlebih dahulu dengan mengisi bagian gkeConnect di file konfigurasi cluster admin. Jalankan perintah gkectl update cluster dengan perubahan file konfigurasi.

  3. Pastikan gkectl dan cluster Anda adalah versi yang sesuai untuk upgrade, dan Anda telah mendownload paket yang sesuai. Perbedaan versi antara cluster admin dan pengguna bergantung pada versi Google Distributed Cloud. Untuk memastikan Anda dapat mengupgrade cluster admin, lihat Kemiringan versi cluster pengguna dan admin.

  4. Pastikan kolom bundlepath di file konfigurasi cluster admin cocok dengan jalur paket yang ingin Anda upgrade.

    Jika Anda melakukan perubahan lain pada kolom di file konfigurasi cluster admin, perubahan ini akan diabaikan selama upgrade. Agar perubahan tersebut dapat diterapkan, Anda harus mengupgrade cluster terlebih dahulu, lalu menjalankan perintah update cluster dengan perubahan file konfigurasi untuk membuat perubahan lain pada cluster.

Jalankan gkectl upgrade admin

Lakukan langkah-langkah di bagian ini pada workstation admin Anda. Ada dua variasi perintah gkectl upgrade admin:

  • Asinkron:
    Dengan variasi asinkron, perintah akan memulai upgrade dan selesai. Anda tidak perlu melihat output perintah selama proses upgrade. Sebagai gantinya, Anda dapat memeriksa progres upgrade secara berkala dengan menjalankan gkectl list admin dan gkectl describe admin. Untuk menggunakan variasi asinkron, sertakan flag --async dalam perintah.

    Persyaratan untuk upgrade asinkron:

    • Hanya didukung untuk cluster admin ketersediaan tinggi (HA) dengan versi 1.29 atau yang lebih tinggi.
    • Semua cluster pengguna harus mengaktifkan Controlplane V2.
  • Sinkron:
    Dengan variasi sinkron, perintah gkectl upgrade admin menghasilkan pesan status ke workstation admin saat upgrade berlangsung.

Upgrade asinkron

  1. Di workstation admin, mulai upgrade asinkron:

    gkectl upgrade admin \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG_FILE \
        --async \
        FLAGS
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_KUBECONFIG: jalur ke file kubeconfig cluster admin.

    • ADMIN_CLUSTER_CONFIG_FILE: jalur ke file konfigurasi cluster admin.

    • FLAGS: kumpulan flag opsional. Misalnya, Anda dapat menyertakan flag --skip-validation-infra untuk melewati pemeriksaan infrastruktur vSphere Anda.

    Perintah sebelumnya selesai, dan Anda dapat terus menggunakan workstation admin saat upgrade sedang berlangsung.

  2. Untuk melihat status upgrade:

    gkectl list admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Output menunjukkan nilai untuk cluster STATE. Jika cluster masih diupgrade, nilai STATE adalah UPGRADING. Contoh:

    NAME              STATE         AGE    VERSION
    gke-admin-test    UPGRADING     9h     1.29.100-gke.248
    

    Nilai yang mungkin untuk STATE adalah RUNNING, UPGRADING, RECONCILING, ERROR, dan UNKNOWN.

  3. Untuk mendapatkan detail selengkapnya tentang progres upgrade dan peristiwa cluster:

    gkectl describe admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Output akan menampilkan resource kustom OnPremAdminCluster untuk cluster admin yang ditentukan, yang mencakup status, kondisi, dan peristiwa cluster.

    Kami mencatat peristiwa untuk awal dan akhir setiap fase upgrade penting.

    Contoh output:

    Events:
    Type    Reason                             Age   From                             Message
    ----       ------                                  ----     ----                                -------
    Normal  ControlPlaneUpgradeStarted         40m   onprem-admin-cluster-controller  Creating or updating admin cluster API Controller
    Normal  ControlPlaneMachineUpgradeStarted  40m   onprem-admin-cluster-controller  Creating or updating control plane machine
    Normal  StatusChanged                      40m   onprem-admin-cluster-controller  OnPremAdminCluster status changed:
    - New ClusterState condition: UPGRADING
    - New Ready condition: False, CreateOrUpdateControlPlaneMachine, Creating or updating control plane machine
    Normal   StatusChanged      2m                onprem-admin-cluster-controller  OnPremAdminCluster status changed:
    - New ClusterState condition: RUNNING
    - New Ready condition: True, ClusterRunning, Cluster is running
    
  4. Setelah upgrade selesai, gkectl list admin menampilkan STATUS dari RUNNING:

    NAME              STATE         AGE    VERSION
    gke-admin-test    RUNNING       9h     1.29.100-gke.248
    

    Selain itu, setelah upgrade selesai, gkectl describe admin akan menampilkan kolom Last GKE On Prem Version di bagian Status. Contoh:

    Status:
      Cluster State:  RUNNING
      Last GKE On Prem Version:  1.29.0-gke.1
    

Memecahkan masalah upgrade asinkron

Untuk upgrade asinkron, durasi waktu tunggu didasarkan pada jumlah node dalam cluster. Jika upgrade memerlukan waktu lebih lama daripada durasi waktu tunggu, status cluster akan diubah dari UPGRADING menjadi ERROR, dengan peristiwa yang menyatakan bahwa waktu operasi upgrade telah habis. Perhatikan bahwa status ERROR di sini berarti upgrade memerlukan waktu lebih lama dari yang diperkirakan, tetapi belum dihentikan. Pengontrol melanjutkan rekonsiliasi dan terus mencoba kembali operasi tersebut. Jika upgrade diblokir atau gagal, Anda dapat menjalankan gkectl diagnose untuk memeriksa masalah cluster umum. Berdasarkan hasilnya, Anda dapat memutuskan apakah akan melakukan perbaikan manual atau menghubungi Dukungan Google Cloud untuk mendapatkan bantuan lebih lanjut.

Upgrade sinkron

  1. Jalankan perintah berikut:

    gkectl upgrade admin \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG_FILE \
        FLAGS
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_KUBECONFIG: jalur ke file kubeconfig cluster admin.

    • ADMIN_CLUSTER_CONFIG_FILE: jalur ke file konfigurasi cluster admin.

    • FLAGS: kumpulan flag opsional. Misalnya, Anda dapat menyertakan flag --skip-validation-infra untuk melewati pemeriksaan infrastruktur vSphere.

    Perintah gkectl upgrade menjalankan pemeriksaan preflight. Jika pemeriksaan preflight gagal, perintah akan diblokir. Anda harus memperbaiki kegagalan ini atau menggunakan flag --skip-preflight-check-blocking dengan perintah untuk berhenti memblokir.

  2. Jika Anda mengupgrade ke versi 1.14.0 atau yang lebih baru, file kubeconfig baru akan dibuat untuk cluster admin yang menimpa file yang ada. Untuk melihat detail cluster dalam file, jalankan perintah berikut:

    kubectl config view --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Hapus paket lengkap

Jika telah mendownload paket lengkap, dan telah berhasil menjalankan perintah gkectl prepare dan gkectl upgrade admin, Anda harus menghapus paket lengkap untuk menghemat kapasitas disk di workstation admin. Jalankan perintah berikut untuk menghapus paket lengkap:

rm /var/lib/gke/bundles/gke-onprem-vsphere-${TARGET_VERSION}-full.tgz

Melanjutkan upgrade cluster admin

Jika upgrade cluster admin terganggu atau gagal, upgrade dapat dilanjutkan jika pos pemeriksaan cluster admin berisi status yang diperlukan untuk memulihkan status sebelum gangguan.

Peringatan: Jangan perbaiki master admin dengan gkectl repair admin-master setelah upaya upgrade gagal. Hal ini akan menyebabkan cluster admin mengalami kondisi yang buruk.

Ikuti langkah-langkah berikut:

  1. Periksa apakah bidang kontrol admin responsif sebelum Anda memulai upaya upgrade awal. Lihat Mendiagnosis masalah cluster. Seperti yang dibahas dalam topik tersebut, jalankan perintah gkectl diagnose cluster untuk cluster admin.

  2. Jika bidang kontrol admin tidak responsif sebelum upaya upgrade awal, perbaiki bidang kontrol admin dengan perintah gkectl repair admin-master.

  3. Saat Anda menjalankan kembali perintah upgrade setelah upgrade terhenti atau gagal, gunakan paket dan versi target yang sama seperti yang Anda lakukan pada upaya upgrade sebelumnya.

Saat Anda menjalankan ulang perintah upgrade, upgrade yang dilanjutkan akan membuat ulang status cluster admin dari checkpoint dan menjalankan ulang seluruh upgrade. Mulai 1.12.0, jika bidang kontrol admin tidak responsif, proses upgrade akan langsung diupgrade ke versi target tanpa mencoba memulihkan cluster admin pada versi sumber sebelum melanjutkan upgrade.

Upgrade akan dilanjutkan dari titik kegagalan atau keluar dari titik pemeriksaan cluster admin. Jika checkpoint tidak tersedia, upgrade akan kembali mengandalkan bidang kontrol admin, sehingga bidang kontrol admin harus responsif agar dapat melanjutkan upgrade. Setelah upgrade berhasil, checkpoint tersebut akan dibuat ulang.

Jika gkectl keluar secara tidak terduga selama upgrade cluster admin, cluster jenis tidak akan dibersihkan. Sebelum menjalankan kembali perintah upgrade untuk melanjutkan upgrade, hapus cluster jenis:

docker stop gkectl-control-plane && docker rm gkectl-control-plane

Setelah menghapus cluster jenis, jalankan kembali perintah upgrade.

Melakukan roll back workstation admin setelah upgrade

Anda dapat melakukan roll back workstation admin ke versi yang digunakan sebelum upgrade.

Selama upgrade, gkeadm akan merekam versi sebelum diupgrade di file informasi output. Selama rollback, gkeadm akan menggunakan versi yang tercantum untuk mendownload file lama.

Untuk melakukan roll back workstation admin ke versi sebelumnya:

gkeadm rollback admin-workstation --config=AW_CONFIG_FILE

Anda dapat menghapus --config=AW_CONFIG_FILE jika file konfigurasi workstation admin Anda adalah admin-ws-config.yaml default. Jika tidak, ganti AW_CONFIG_FILE dengan jalur ke file konfigurasi workstation admin.

Perintah rollback melakukan langkah-langkah berikut:

  1. Mendownload versi rollback gkeadm.
  2. Mencadangkan direktori utama workstation admin saat ini.
  3. Membuat workstation admin baru menggunakan versi rollback gkeadm.
  4. Menghapus workstation admin asli.

Instal paket dengan versi berbeda untuk upgrade

Jika Anda mengupgrade workstation, paket dengan versi yang sesuai akan diinstal di perangkat tersebut untuk mengupgrade cluster. Jika Anda menginginkan versi yang berbeda, ikuti langkah-langkah berikut guna menginstal paket untuk TARGET_VERSION, yang merupakan versi yang ingin Anda upgrade.

  1. Untuk memeriksa gkectl dan versi cluster saat ini, jalankan perintah ini. Gunakan flag --details/-d untuk mengetahui informasi yang lebih mendetail.

    gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details
    

    Output-nya memberikan informasi tentang versi cluster Anda.

  2. Berdasarkan output yang Anda dapatkan, cari masalah berikut, lalu perbaiki sesuai kebutuhan.

    • Jika versi cluster admin saat ini memiliki lebih dari satu versi minor yang lebih rendah dari TARGET_VERSION, upgrade semua cluster Anda menjadi satu versi minor yang lebih rendah dari TARGET_VERSION.

    • Jika versi gkectl lebih rendah dari 1.11, dan Anda ingin mengupgrade ke 1.12.x, Anda harus melakukan beberapa upgrade. Upgrade satu versi minor satu per satu, hingga Anda mencapai 1.11.x, lalu lanjutkan dengan petunjuk dalam topik ini.

    • Jika versi gkectl lebih rendah dari TARGET_VERSION, upgrade workstation admin ke TARGET_VERSION.

  3. Jika Anda sudah menetapkan bahwa versi gkectl dan cluster Anda sesuai untuk diupgrade, download paket.

    Periksa apakah tarball paket sudah ada di workstation admin.

    stat /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz

    Jika paket tidak ada di workstation admin, download paket tersebut.

    gsutil cp gs://gke-on-prem-release/gke-onprem-bundle/TARGET_VERSION/gke-onprem-vsphere-TARGET_VERSION.tgz /var/lib/gke/bundles/
    

  4. Instal paket.

    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 Anda. Anda dapat menghilangkan flag ini jika file berada di direktori Anda saat ini dan memiliki nama kubeconfig.

  5. Cantumkan versi cluster yang tersedia, dan pastikan versi target tersebut disertakan dalam versi cluster pengguna yang tersedia.

    gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details

Anda kini dapat membuat cluster pengguna pada versi target, atau mengupgrade cluster pengguna ke versi target.

Memecahkan masalah proses upgrade

Jika Anda mengalami masalah saat mengikuti proses upgrade yang direkomendasikan, ikuti rekomendasi berikut untuk menyelesaikannya. Saran ini mengasumsikan bahwa Anda telah memulai penyiapan versi 1.11.x dan melanjutkan proses upgrade yang direkomendasikan.

Lihat juga: Memecahkan masalah pembuatan dan upgrade cluster

Memecahkan masalah upgrade cluster pengguna

Misalkan Anda menemukan masalah pada versi upgrade saat mengupgrade cluster pengguna. Anda menentukan dari Dukungan Google bahwa masalah akan diperbaiki dalam rilis patch mendatang. Anda dapat melanjutkan sebagai berikut:

  1. Terus gunakan versi saat ini untuk produksi.
  2. Uji rilis patch di cluster non-produksi saat dirilis.
  3. Upgrade semua cluster pengguna produksi ke versi rilis patch setelah Anda yakin.
  4. Upgrade cluster admin ke versi rilis patch.

Memecahkan masalah upgrade cluster admin

Jika mengalami masalah saat mengupgrade cluster admin, Anda harus menghubungi Dukungan Google untuk menyelesaikan masalah dengan cluster admin.

Sementara itu, dengan alur upgrade baru, Anda tetap bisa mendapatkan manfaat dari fitur cluster pengguna baru tanpa diblokir oleh upgrade cluster admin, yang memungkinkan Anda mengurangi frekuensi upgrade cluster admin jika diinginkan. Proses upgrade Anda dapat dilanjutkan sebagai berikut:

  1. Mengupgrade cluster pengguna produksi ke versi 1.12.x.
  2. Pertahankan cluster admin pada versi sebelumnya dan terus terima patch keamanan.
  3. Uji upgrade cluster admin dari 1.11.x ke 1.12.x di lingkungan pengujian, dan laporkan masalah jika ada;
  4. Jika masalah Anda teratasi dengan rilis patch 1.12.x, Anda dapat memilih untuk mengupgrade cluster admin produksi ke rilis patch ini jika diinginkan.

Masalah umum untuk versi terbaru

Masalah umum berikut dapat memengaruhi upgrade jika Anda melakukan upgrade dari versi 1.7 atau yang lebih baru.

Lihat juga: Masalah umum

Upgrade workstation admin dapat gagal jika disk data hampir penuh

Jika Anda mengupgrade workstation admin dengan perintah gkectl upgrade admin-workstation, upgrade mungkin gagal jika disk data hampir penuh, karena sistem mencoba mencadangkan workstation admin saat ini secara lokal saat mengupgrade ke workstation admin baru. Jika Anda tidak dapat mengosongkan cukup ruang di disk data, gunakan perintah gkectl upgrade admin-workstation dengan tanda tambahan --backup-to-local=false untuk mencegah pembuatan cadangan lokal dari workstation admin saat ini.

Gangguan untuk workload dengan PodDisruptionBudgets

Saat ini, upgrade cluster dapat menyebabkan gangguan atau periode nonaktif untuk workload yang menggunakan PodDisruptionBudgets (PDB).

Node gagal menyelesaikan proses upgrade

Jika Anda memiliki objek PodDisruptionBudget yang dikonfigurasi untuk tidak mengizinkan gangguan tambahan, upgrade node mungkin akan gagal untuk mengupgrade ke versi panel kontrol setelah beberapa percobaan. Untuk mencegah kegagalan ini, sebaiknya tingkatkan skala Deployment atau HorizontalPodAutoscaler agar node dapat dihabiskan sambil tetap mematuhi konfigurasi PodDisruptionBudget.

Untuk melihat semua objek PodDisruptionBudget yang tidak mengizinkan gangguan apa pun:

kubectl get poddisruptionbudget --all-namespaces -o jsonpath='{range .items[?(@.status.disruptionsAllowed==0)]}{.metadata.name}/{.metadata.namespace}{"\n"}{end}'

Lampiran

Tentang aturan DRS VMware yang diaktifkan di versi 1.1.0-gke.6

Mulai versi 1.1.0-gke.6, GKE di VMware secara otomatis membuat aturan anti-afinitas Distributed Resource Scheduler (DRS) VMware untuk node cluster pengguna, sehingga akan disebar di setidaknya tiga host fisik di pusat data Anda. Mulai versi 1.1.0-gke.6, fitur ini diaktifkan secara otomatis untuk cluster baru dan cluster yang sudah ada.

Sebelum melakukan upgrade, pastikan lingkungan vSphere Anda memenuhi kondisi berikut:

  • VMware DRS diaktifkan. VMware DRS memerlukan edisi lisensi vSphere Enterprise Plus. Untuk mempelajari cara mengaktifkan DRS, lihat Mengaktifkan VMware DRS dalam cluster

  • Nama pengguna vSphere yang diberikan di file konfigurasi kredensial Anda memiliki izin Host.Inventory.EditCluster.

  • Ada setidaknya tiga host fisik yang tersedia.

Jika lingkungan vSphere tidak memenuhi kondisi sebelumnya, Anda masih dapat mengupgrade, tetapi untuk mengupgrade cluster pengguna dari 1.3.x ke 1.4.x, Anda harus menonaktifkan grup anti-afinitas. Untuk mengetahui informasi selengkapnya, lihat masalah umum ini di catatan rilis Google Distributed Cloud.

Tentang periode nonaktif selama upgrade

Resource Deskripsi
Cluster Admin

Saat cluster admin tidak aktif, bidang kontrol dan workload cluster pengguna di cluster pengguna akan terus berjalan, kecuali jika cluster tersebut terpengaruh oleh kegagalan yang menyebabkan periode nonaktif.

Bidang kontrol cluster pengguna

Biasanya, tidak akan ada periode nonaktif yang signifikan pada bidang kontrol cluster pengguna. Namun, koneksi yang berjalan lama ke server Kubernetes API dapat rusak dan harus dibangun kembali. Dalam hal ini, pemanggil API harus mencoba lagi hingga terhubung. Dalam kasus terburuk, mungkin terdapat periode nonaktif hingga satu menit selama upgrade.

Node cluster pengguna

Jika upgrade memerlukan perubahan pada node cluster pengguna, GKE pada VMware akan membuat ulang node secara bertahap, dan menjadwalkan ulang Pod yang berjalan pada node ini. Anda dapat mencegah dampak terhadap workload Anda dengan mengonfigurasi PodDisruptionBudgets dan aturan anti-afinitas yang sesuai.

Membuat ulang file informasi jika tidak ada

Jika file informasi output untuk workstation admin tidak ada, Anda harus membuat ulang file ini agar dapat melanjutkan upgrade. File ini dibuat saat Anda pertama kali membuat workstation, dan jika Anda telah melakukan upgrade, file tersebut akan diperbarui dengan informasi baru.

File informasi output memiliki format ini:

Admin workstation version: GKEADM_VERSION
Created using gkeadm version: GKEADM_VERSION
VM name: ADMIN_WS_NAME
IP: ADMIN_WS_IP
SSH key used: FULL_PATH_TO_ADMIN_WS_SSH_KEY
To access your admin workstation:
ssh -i FULL-PATH-TO-ADMIN-WS-SSH-KEY ubuntu@ADMIN-WS-IP

Berikut adalah contoh file informasi output:

Admin workstation version: v1.10.3-gke.49
Created using gkeadm version: v1.10.3-gke.49
VM name: admin-ws-janedoe
IP: 172.16.91.21
SSH key used: /usr/local/google/home/janedoe/.ssh/gke-admin-workstation
Upgraded from (rollback version): v1.10.0-gke.194
To access your admin workstation:
ssh -i /usr/local/google/home/janedoe/.ssh/gke-admin-workstation ubuntu@172.16.91.21

Buat file di editor, dengan mengganti parameter yang sesuai. Simpan file dengan nama file yang sama dengan nama VM di direktori tempat gkeadm dijalankan. Misalnya, jika nama VM adalah admin-ws-janedoe, simpan file sebagai admin-ws-janedoe.

Langkah selanjutnya