Dokumen ini menjelaskan cara mengupgrade cluster di Google Distributed Cloud (khusus software) untuk VMware. Dokumen ini memberikan langkah-langkah untuk mengupgrade workstation admin, cluster pengguna, dan cluster admin. Langkah-langkah untuk mengupgrade cluster pengguna menunjukkan cara mengupgrade panel kontrol dan semua node pool. Jika Anda ingin mengupgrade node pool dan panel kontrol cluster pengguna secara terpisah, lihat Mengupgrade node pool.
Halaman ini ditujukan untuk Operator dan administrator IT 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 melanjutkan, sebaiknya tinjau dokumentasi berikut:
Ringkasan upgrade
Selain itu, dokumen ini menjelaskan penyimpangan versi dan aturan 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
Di versi 1.29 dan yang lebih baru, pemeriksaan pra-penerbangan sisi server diaktifkan secara default. 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.
Dengan pemeriksaan pra-penerbangan sisi server, saat Anda mengupgrade cluster pengguna menggunakan
gkectl
, pemeriksaan pra-penerbangan akan dijalankan di cluster admin, bukan secara lokal
di workstation admin. Pemeriksaan pra-penerbangan 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 in Docker (kind) untuk menghosting pengontrol Kubernetes yang diperlukan untuk mengupgrade cluster admin secara sementara. Cluster sementara ini disebut cluster bootstrap. Pemeriksaan pra-penerbangan 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 pemantauan logging. Perubahan ini
diperlukan untuk menggunakan Cloud Monitoring.
Aktifkan
kubernetesmetadata.googleapis.com
:gcloud services enable --project PROJECT_ID \ kubernetesmetadata.googleapis.com
Ganti
PROJECT_ID
dengan 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.projectID
dalam file konfigurasi cluster.Jika organisasi Anda telah menyiapkan daftar yang diizinkan yang memungkinkan traffic dari Google API dan alamat lain melewati server proxy Anda, tambahkan
kubernetesmetadata.googleapis.com
ke daftar yang diizinkan.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
di project Google Cloud tempat cluster dibuat. Untuk mengetahui detail tentang izin yang disertakan dalam peran ini,
lihat
Peran on-prem 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 penampung 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.
Melakukan perubahan konfigurasi sebelum atau setelah upgrade
Jika Anda perlu melakukan perubahan konfigurasi pada cluster, lakukan update cluster sebelum atau setelah upgrade. Satu-satunya perubahan pada konfigurasi cluster untuk upgrade adalah versi. Bergantung pada versi dan jenis cluster, perubahan konfigurasi lainnya akan diabaikan secara otomatis atau menyebabkan upgrade gagal. Untuk informasi selengkapnya, lihat Menghapus perubahan yang tidak didukung untuk berhenti memblokir upgrade.
Memeriksa versi yang tersedia untuk upgrade cluster
Jalankan perintah berikut untuk melihat versi yang tersedia untuk diupgrade:
gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Output akan menampilkan versi saat ini dan versi yang tersedia untuk diupgrade.
Jika Anda berencana menggunakan konsol, gcloud CLI, atau Terraform untuk upgrade, perlu waktu sekitar 7 hingga 14 hari setelah rilis agar versi 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 workstation admin
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 dikelola pengguna.
gkeadm
Menemukan file yang diperlukan
Sebelum membuat workstation admin, Anda 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
memerlukannya untuk melakukan langkah-langkah upgrade. Jika file ini berada di direktori
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, Anda harus menentukannya
menggunakan flag --config
dan --info-file
.
Jika file informasi output tidak ada, Anda dapat membuatnya ulang. Lihat Membuat ulang file informasi jika tidak ada.
Upgrade
Untuk mengupgrade workstation admin:
Periksa kolom
adminWorkstation.diskGB
di file konfigurasi workstation admin dan pastikan ukuran yang ditentukan minimal 100, misalnya:adminWorkstation: diskGB: 100
Saat mengupgrade ke 1.28 dan yang lebih tinggi, diperlukan 100 GB, dan upgrade cluster akan gagal jika workstation admin tidak memiliki kapasitas disk yang memadai.
Download
gkeadm
:gkeadm upgrade gkeadm --target-version TARGET_VERSION
Ganti TARGET_VERSION dengan versi target upgrade Anda. Anda perlu menentukan nomor versi lengkap dalam bentuk
X.Y.Z-gke.N.
. Untuk mengetahui daftar versi Google Distributed Cloud, lihat Pembuatan versi.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 tanda ini jika file berada di direktori saat ini dan memiliki namaadmin-ws-config.yaml
.INFO_FILE
: jalur file informasi Anda. Anda dapat menghapus tanda 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
gkectl
versi baru.
Download gkectl
:
gcloud storage cp gs://gke-on-prem-release/gkectl/VERSION/gkectl ./ chmod +x gkectl
Ganti VERSION dengan versi target upgrade Anda. Contoh: 1.30.300-gke.84
.
Download paket Google Distributed Cloud. Pastikan versinya cocok dengan versi yang Anda gunakan untuk mendownload gkectl
:
gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz ./
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:
Jalankan
gkectl prepare
untuk mengimpor image OS ke vSphere:gkectl prepare \ --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Jika cluster Anda memiliki node pool Windows, jalankan
gkectl prepare windows
, dan update kolomosImage
untuk node pool. Untuk petunjuk mendetail, lihat Mengupgrade cluster pengguna dengan node pool Windows.Dalam file konfigurasi cluster pengguna, tetapkan
gkeOnPremVersion
ke versi target upgrade Anda.
Menjalankan pemeriksaan pra-penerbangan
Saat mengupgrade ke versi 1.29 dan yang lebih tinggi, Anda dapat menjalankan pemeriksaan pra-penerbangan sebelum mengupgrade cluster pengguna:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG \ --dry-run
Dengan tanda --dry-run
, gkectl upgrade cluster
akan menjalankan pemeriksaan pra-penerbangan, tetapi tidak memulai proses upgrade. Meskipun versi sebelumnya
Google Distributed Cloud menjalankan pemeriksaan pra-penerbangan, versi tersebut tidak dapat dijalankan secara terpisah
dari upgrade. Dengan menambahkan tanda --dry-run
, Anda dapat menemukan dan memperbaiki masalah apa pun yang ditemukan pemeriksaan pra-penerbangan dengan cluster pengguna sebelum upgrade.
Jalankan gkectl upgrade cluster
Ada dua variasi perintah gkectl upgrade cluster
:
Asinkron: (direkomendasikan)
Dengan variasi asinkron, perintah akan memulai upgrade, lalu selesai. Anda tidak perlu melihat output perintah selama seluruh durasi upgrade. Sebagai gantinya, Anda dapat memeriksa progres upgrade secara berkala dengan menjalankangkectl list clusters
dangkectl describe clusters
. Untuk menggunakan variasi asinkron, sertakan flag--async
dalam perintah.Sinkron:
Dengan variasi sinkron, perintahgkectl upgrade cluster
akan menghasilkan pesan status ke workstation admin saat upgrade berlangsung.
Upgrade asinkron
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 informasi tentang cara menyiapkan kredensial registry pribadi, lihat Mengonfigurasi kredensial yang disiapkan untuk cluster pengguna.
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.
Untuk melihat status upgrade:
gkectl list clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Output menunjukkan nilai untuk cluster
STATE
. Jika cluster masih diupgrade, nilaiSTATE
adalahUPGRADING
. Contoh:NAMESPACE NAME READY STATE AGE VERSION my-uc-gkeonprem-mgmt my-uc False UPGRADING 9h 1.30.0-gke.1
Nilai yang mungkin untuk
STATE
adalahPROVISIONING
,UPGRADING
,DELETING
,UPDATING
,RUNNING
,RECONCILING
,ERROR
, danUNKNOWN
.Untuk mengetahui detail selengkapnya tentang progres upgrade dan peristiwa cluster:
gkectl describe clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --cluster USER_CLUSTER_NAME -v 5
Output 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
Setelah upgrade selesai,
gkectl list clusters
akan menampilkanSTATUS
dariRUNNING
:NAMESPACE NAME READY STATE AGE VERSION my-uc-gkeonprem-mgmt my-uc True RUNNING 9h 1.30.0-gke.1
Selain itu, saat upgrade selesai,
gkectl describe clusters
akan menampilkan kolomLast GKE On Prem Version
di bagianStatus
. Contoh:Status: Cluster State: RUNNING Last GKE On Prem Version: 1.30.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 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.
Biasanya waktu tunggu habis adalah hasil dari deadlock yang disebabkan oleh
PodDisruptionBudget (PDB). Dalam hal ini, Pod tidak dapat dihapus dari node lama, dan node lama tidak dapat dikosongkan. Jika penghapusan Pod memerlukan waktu lebih lama dari 10 menit, kami akan menulis peristiwa ke objek OnPremUserCluster. Anda dapat
mengambil peristiwa dengan menjalankan gkectl describe clusters
. Kemudian, Anda dapat menyesuaikan
PDB untuk mengizinkan node habis. 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, saat 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 tim dukungan Anthos untuk mendapatkan bantuan lebih lanjut.
Upgrade sinkron
Perintah gkectl upgrade
menjalankan pemeriksaan pra-penerbangan. Jika pemeriksaan pra-penerbangan
gagal, perintah akan diblokir. Anda harus memperbaiki kegagalan, atau menggunakan
flag --skip-preflight-check-blocking
. Anda hanya boleh melewati pemeriksaan preflight
jika yakin tidak ada kegagalan kritis.
Lanjutkan dengan langkah-langkah berikut di workstation admin Anda:
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 informasi tentang cara menyiapkan kredensial registry pribadi, lihat Mengonfigurasi kredensial yang disiapkan untuk cluster pengguna.
Upgrade cluster:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE
Jika Anda mengupgrade ke versi 1.14.0 atau yang lebih tinggi, 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
Melanjutkan upgrade
Jika upgrade cluster pengguna terganggu, Anda dapat melanjutkan upgrade cluster pengguna dengan menjalankan perintah upgrade yang sama dengan flag --skip-validation-all
:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --skip-validation-all
Konsol
Mengupgrade 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:
Di konsol, buka halaman ringkasan cluster Google Kubernetes Engine.
Pilih project Google Cloud, lalu pilih cluster yang ingin Anda upgrade.
Di panel Detail, klik Detail selengkapnya.
Di bagian Dasar-dasar cluster, klik
Upgrade.Dalam daftar Choose target version, pilih versi yang ingin Anda upgrade. Daftar pilihan hanya berisi rilis patch terbaru.
Klik Upgrade.
Sebelum cluster diupgrade, pemeriksaan pra-penerbangan akan dijalankan untuk memvalidasi status cluster dan kesehatan node. Jika pemeriksaan pra-penerbangan lulus, 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
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.
Untuk mengupgrade cluster pengguna:
Update komponen Google Cloud CLI:
gcloud components update
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 jika versi yang Anda upgrade diinstal di cluster admin. Perintah
upgrade
mendownload dan men-deploy paket komponen yang cocok dengan versi yang Anda tentukan dalam perintahupgrade
.Mengupgrade cluster.
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 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
Terraform
Update komponen Google Cloud CLI:
gcloud components update
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.
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. Ini adalah project yang Anda tentukan saat cluster dibuat. Jika Anda membuat cluster menggunakangkectl
, ini adalah project ID di kolomgkeConnect.projectID
dalam file konfigurasi cluster.REGION
: Region Google Cloud tempat GKE On-Prem API berjalan dan menyimpan metadata-nya. Dalam filemain.tf
yang Anda gunakan untuk membuat cluster pengguna, region berada di kolomlocation
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
Download versi baru komponen dan deploy di cluster admin:
gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --required-platform-version=VERSION
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.Dalam file
main.tf
yang Anda gunakan untuk membuat cluster pengguna, ubahon_prem_version
di resource cluster ke versi baru.Lakukan inisialisasi dan buat rencana Terraform:
terraform init
Terraform menginstal library yang diperlukan, seperti penyedia Google Cloud.
Tinjau konfigurasi dan buat perubahan jika diperlukan:
terraform plan
Terapkan rencana Terraform untuk membuat cluster pengguna:
terraform apply
Mengupgrade cluster admin
Setelah mengupgrade cluster pengguna, Anda dapat mengupgrade cluster admin.
Sebelum memulai:
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 perintahgkectl
update cluster dengan perubahan file konfigurasi.Pastikan
gkectl
dan cluster Anda adalah versi yang sesuai untuk upgrade, dan Anda telah mendownload paket yang sesuai. Penyimpangan versi antara cluster admin dan pengguna Anda bergantung pada versi Google Distributed Cloud. Untuk memastikan Anda dapat mengupgrade cluster admin, lihat Ketidaksesuaian versi cluster admin dan pengguna.Pastikan kolom
bundlepath
di file konfigurasi cluster admin cocok dengan jalur paket yang ingin Anda upgrade.Jika Anda membuat perubahan lain pada kolom di file konfigurasi cluster admin, perubahan ini akan diabaikan selama upgrade. Agar perubahan tersebut 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 di workstation admin Anda. Ada dua variasi perintah gkectl upgrade admin
:
Asinkron:
Dengan variasi asinkron, perintah akan memulai upgrade, lalu selesai. Anda tidak perlu melihat output perintah selama seluruh durasi upgrade. Sebagai gantinya, Anda dapat memeriksa progres upgrade secara berkala dengan menjalankangkectl list admin
dangkectl describe admin
. Untuk menggunakan variasi asinkron, sertakan flag--async
dalam perintah.Persyaratan untuk upgrade asinkron:
- Hanya didukung untuk cluster admin HA dengan versi 1.29 atau yang lebih tinggi.
- Semua cluster pengguna harus mengaktifkan Controlplane V2.
Sinkron:
Dengan variasi sinkron, perintahgkectl upgrade admin
akan menghasilkan pesan status ke workstation admin saat upgrade berlangsung.
Upgrade asinkron
Di workstation admin, mulai upgrade asinkron:
gkectl upgrade admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG_FILE \ --async
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
: jalur ke file kubeconfig cluster admin.ADMIN_CLUSTER_CONFIG_FILE
: jalur ke file konfigurasi cluster admin.
Perintah sebelumnya selesai, dan Anda dapat terus menggunakan workstation admin saat upgrade sedang berlangsung.
dengan
gkectl upgrade admin
, jalankan perintah berikut:gkectl upgrade admin -h
Untuk melihat status upgrade:
gkectl list admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Output menunjukkan nilai untuk cluster
STATE
. Jika cluster masih diupgrade, nilaiSTATE
adalahUPGRADING
. Contoh:NAME STATE AGE VERSION gke-admin-test UPGRADING 9h 1.30.300-gke.84
Nilai yang mungkin untuk
STATE
adalahRUNNING
,UPGRADING
,RECONCILING
,ERROR
, danUNKNOWN
.Untuk mengetahui detail selengkapnya tentang progres upgrade dan peristiwa cluster:
gkectl describe admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Output menunjukkan 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
Setelah upgrade selesai,
gkectl list admin
akan menampilkanSTATUS
dariRUNNING
:NAME STATE AGE VERSION gke-admin-test RUNNING 9h 1.30.300-gke.84
Selain itu, saat upgrade selesai,
gkectl describe admin
akan menampilkan kolomLast GKE On Prem Version
di bagianStatus
. Contoh:Status: Cluster State: RUNNING Last GKE On Prem Version: 1.30.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 habis. Perhatikan bahwa status ERROR
di sini berarti
upgrade memerlukan waktu lebih lama dari yang diperkirakan, tetapi belum dihentikan. Pengontrol
akan melanjutkan rekonsiliasi dan terus mencoba kembali operasi.
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
Jalankan perintah berikut:
gkectl upgrade admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG_FILE \
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG
: jalur ke file kubeconfig cluster admin.ADMIN_CLUSTER_CONFIG_FILE
: jalur ke file konfigurasi cluster admin.
Perintah
gkectl upgrade
menjalankan pemeriksaan pra-penerbangan. Jika pemeriksaan pra-penerbangan gagal, perintah akan diblokir. Anda harus memperbaiki kegagalan atau menggunakan flag--skip-preflight-check-blocking
dengan perintah untuk berhenti memblokirnya.Jika Anda mengupgrade ke versi 1.14.0 atau yang lebih tinggi, 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
Menghapus paket lengkap
Jika Anda mendownload paket lengkap, dan telah berhasil menjalankan
perintah gkectl prepare
dan gkectl upgrade admin
, Anda harus menghapus
paket lengkap untuk menghemat ruang 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 checkpoint 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 berada dalam status buruk.
Ikuti langkah-langkah berikut:
Periksa apakah control plane admin berfungsi dengan baik sebelum Anda memulai upaya upgrade awal. Lihat Mendiagnosis masalah cluster. Seperti yang telah dibahas dalam topik tersebut, jalankan perintah
gkectl diagnose cluster
untuk cluster admin.Jika panel kontrol admin tidak sehat sebelum upaya upgrade awal, perbaiki panel kontrol admin dengan perintah
gkectl repair admin-master
.Saat Anda menjalankan kembali perintah upgrade setelah upgrade terganggu atau gagal, gunakan versi target dan app bundle 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 titik pemeriksaan dan menjalankan ulang seluruh upgrade. Mulai dari 1.12.0, jika control plane admin tidak sehat, proses upgrade akan langsung mengupgrade ke versi target tanpa mencoba memulihkan cluster admin pada versi sumber sebelum melanjutkan upgrade.
Upgrade akan dilanjutkan dari titik saat upgrade gagal atau keluar jika checkpoint cluster admin tersedia. Jika checkpoint tidak tersedia, upgrade akan kembali mengandalkan panel kontrol admin, sehingga panel kontrol admin harus dalam kondisi baik untuk melanjutkan upgrade. Setelah upgrade berhasil, titik pemeriksaan 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 kind:
docker stop gkectl-control-plane && docker rm gkectl-control-plane
Setelah menghapus cluster jenis, jalankan kembali perintah upgrade.
Me-roll back workstation admin setelah upgrade
Anda dapat melakukan rollback workstation admin ke versi yang digunakan sebelum upgrade.
Selama upgrade, gkeadm
mencatat versi sebelum diupgrade dalam file informasi output. Selama rollback, gkeadm
menggunakan versi yang tercantum untuk mendownload file yang lebih lama.
Untuk melakukan roll back workstation admin ke versi sebelumnya:
gkeadm rollback admin-workstation --config=AW_CONFIG_FILE
Anda dapat menghilangkan --config=AW_CONFIG_FILE
jika file konfigurasi workstation admin 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:
- Mendownload versi rollback
gkeadm
. - Mencadangkan direktori utama workstation admin saat ini.
- Membuat workstation admin baru menggunakan versi rollback
gkeadm
. - Menghapus workstation admin asli.
Menginstal paket dengan versi yang berbeda untuk upgrade
Jika Anda mengupgrade workstation, paket dengan versi yang sesuai akan diinstal di sana untuk mengupgrade cluster. Jika Anda menginginkan versi yang berbeda, ikuti langkah-langkah berikut untuk menginstal paket untuk TARGET_VERSION, yang merupakan versi yang ingin Anda upgrade.
Untuk memeriksa versi
gkectl
dan cluster saat ini, jalankan perintah ini. Gunakan flag--details/-d
untuk mengetahui informasi yang lebih mendetail.gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details
Output tersebut memberikan informasi tentang versi cluster Anda.
Berdasarkan output yang Anda dapatkan, cari masalah berikut, dan perbaiki sesuai kebutuhan.
Jika versi cluster admin saat ini lebih dari satu versi minor lebih rendah dari TARGET_VERSION, upgrade semua cluster Anda menjadi satu versi minor 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 pada satu waktu, 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.
Setelah Anda menentukan bahwa versi
gkectl
dan cluster Anda sesuai untuk upgrade, 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.
gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/TARGET_VERSION/gke-onprem-vsphere-TARGET_VERSION.tgz /var/lib/gke/bundles/
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 menghapus tanda ini jika file berada di direktori saat ini dan memiliki nama
kubeconfig
.Cantumkan versi cluster yang tersedia, dan pastikan versi target disertakan dalam versi cluster pengguna yang tersedia.
gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details
Sekarang Anda 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 mengatasinya. Saran ini mengasumsikan bahwa Anda telah memulai dengan penyiapan versi 1.11.x, dan melanjutkan melalui 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 mengetahui dari Dukungan Google bahwa masalah tersebut akan diperbaiki dalam rilis patch mendatang. Anda dapat melanjutkan sebagai berikut:
- Terus gunakan versi saat ini untuk produksi.
- Uji rilis patch di cluster non-produksi saat dirilis.
- Upgrade semua cluster pengguna produksi ke versi rilis patch jika Anda yakin.
- 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 pada cluster admin.
Sementara itu, dengan alur upgrade baru, Anda tetap dapat memanfaatkan fitur cluster pengguna baru tanpa diblokir oleh upgrade cluster admin, sehingga Anda dapat mengurangi frekuensi upgrade cluster admin jika mau. Proses upgrade Anda dapat dilanjutkan sebagai berikut:
- Mengupgrade cluster pengguna produksi ke 1.12.x.
- Pertahankan cluster admin pada versi sebelumnya dan terus menerima patch keamanan.
- Menguji upgrade cluster admin dari 1.11.x ke 1.12.x di lingkungan pengujian, dan melaporkan masalah jika ada;
- 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 mengupgrade dari versi 1.7 atau yang lebih baru.
Lihat juga: Masalah umum
Mengupgrade workstation admin mungkin 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 ruang yang memadai di disk data, gunakan perintah gkectl upgrade admin-workstation
dengan flag tambahan --backup-to-local=false
untuk mencegah pembuatan cadangan lokal workstation admin saat ini.
Gangguan untuk workload dengan PodDisruptionBudget
Mengupgrade 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 VMware DRS yang diaktifkan di versi 1.1.0-gke.6
Mulai versi 1.1.0-gke.6, Google Distributed Cloud akan otomatis membuat aturan anti-afinitas VMware Distributed Resource Scheduler (DRS) untuk node cluster pengguna Anda, sehingga node tersebut tersebar di setidaknya tiga host fisik di pusat data Anda. Mulai versi 1.1.0-gke.6, fitur ini otomatis diaktifkan untuk cluster baru dan cluster yang ada.
Sebelum mengupgrade, 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 di cluster
Nama pengguna vSphere yang diberikan dalam file konfigurasi kredensial Anda memiliki izin
Host.Inventory.EditCluster
.Ada setidaknya tiga host fisik yang tersedia.
Jika lingkungan vSphere Anda 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 informasi selengkapnya, lihat masalah umum ini dalam catatan rilis Google Distributed Cloud.
Tentang periode nonaktif selama upgrade
Resource | Deskripsi |
---|---|
Cluster admin | Saat cluster admin tidak aktif, bidang kontrol cluster pengguna dan beban kerja di cluster pengguna akan terus berjalan, kecuali jika terpengaruh oleh kegagalan yang menyebabkan periode nonaktif. |
Bidang kontrol cluster pengguna | Biasanya, Anda tidak akan mengalami periode nonaktif yang signifikan pada panel kontrol cluster pengguna. Namun, koneksi yang berjalan lama ke server Kubernetes API mungkin rusak dan perlu dibuat ulang. Dalam kasus tersebut, pemanggil API harus mencoba lagi hingga membuat koneksi. Dalam kasus terburuk, periode nonaktif dapat berlangsung hingga satu menit selama upgrade. |
Node cluster pengguna | Jika upgrade memerlukan perubahan pada node cluster pengguna, Google Distributed Cloud akan membuat ulang node secara bertahap, dan menjadwalkan ulang Pod yang berjalan di node ini. Anda dapat mencegah dampak pada workload 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 ini 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
Dokumentasi referensi gcloud CLI
Dokumentasi referensi Terraform