Dokumen ini menjelaskan cara mengupgrade versi Kubernetes dari cluster Kubernetes Google Distributed Cloud (GDC) yang terisolasi. Anda harus merencanakan upgrade rutin untuk cluster Anda guna memastikan cluster tersebut menyertakan fitur dan perbaikan Kubernetes terbaru.
Dokumen ini ditujukan untuk audiens seperti administrator IT, engineer keamanan, dan administrator jaringan dalam grup administrator platform, yang bertanggung jawab untuk mengelola resource Kubernetes dalam organisasi mereka. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.
Sebelum memulai
Untuk menyelesaikan tugas dalam dokumen ini, Anda harus meminta izin yang diperlukan dan menyiapkan lingkungan Anda.
Meminta peran IAM
Anda harus memiliki peran tertentu untuk mendapatkan izin yang diperlukan guna mengupgrade cluster Kubernetes. Anda harus meminta peran yang dicakup ke project dan organisasi Anda.
Peran organisasi
Untuk mencantumkan versi upgrade yang tersedia untuk cluster Kubernetes, minta Admin IAM Organisasi Anda untuk memberi Anda peran Admin Cluster Pengguna (user-cluster-admin). Peran ini tidak terikat ke namespace.
Jika Anda mengelola cluster standar dan tidak dapat memperoleh peran Admin Cluster Pengguna dari grup administrator platform Anda, Anda harus meminta mereka untuk memberi Anda daftar versi upgrade Kubernetes yang tersedia.
Peran project
Untuk membuat, menghapus, mengedit, atau melihat upgrade cluster, minta Admin IAM Project Anda untuk memberi Anda peran Admin Cluster Standar (standard-cluster-admin). Peran ini terikat ke namespace project Anda.
Menyiapkan lingkungan Anda
Untuk menjalankan perintah terhadap a cluster Kubernetes menggunakan API, pastikan Anda memiliki resource berikut:
Temukan nama cluster Kubernetes, atau tanyakan kepada anggota grup administrator platform nama cluster.
Gunakan nama cluster Kubernetes untuk mengganti
CLUSTER_NAMEdalam petunjuk ini.Login dan buat file kubeconfig untuk server API pengelolaan.
Gunakan jalur kubeconfig server API pengelolaan untuk mengganti
MANAGEMENT_API_SERVERdalam petunjuk ini.
Mengupgrade cluster Kubernetes
Gunakan
UserClusterUpgradeRequest
API untuk mengupgrade cluster Kubernetes yang ada.
Untuk mengupgrade cluster Kubernetes menggunakan API, ikuti langkah-langkah berikut:
Cantumkan versi upgrade Kubernetes yang tersedia dengan mencetak nilai
kubernetesVersiondari objekUserClusterMetadata:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get userclustermetadata -o=custom-columns='TARGET_VERSION:.spec.kubernetesVersion'Ganti
MANAGEMENT_API_SERVERdengan jalur ke file kubeconfig server API pengelolaan.Perintah ini menampilkan daftar versi Kubernetes yang tersedia:
TARGET_VERSION 1.30.1000-gke.85Catat versi Kubernetes dari output sebelumnya yang ingin Anda gunakan untuk mengupgrade cluster.
targetVersionyang Anda tentukan dalam permintaan upgrade pada langkah berikutnya harus salah satu versi yang tersedia ini.Minta upgrade cluster dengan membuat resource
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f - <<EOF apiVersion: cluster.gdc.goog/v1 kind: UserClusterUpgradeRequest metadata: name: CLUSTER_NAME namespace: CLUSTER_NAMESPACE spec: clusterRef: name: CLUSTER_NAME targetVersion: TARGET_VERSION EOFGanti kode berikut:
MANAGEMENT_API_SERVER: jalur ke file kubeconfig server API pengelolaan.CLUSTER_NAME: nama cluster Kubernetes yang akan diupgrade, sepertiuser-vm-2.CLUSTER_NAMESPACE: namespace cluster Kubernetes. Untuk cluster bersama, gunakan namespaceplatform. Untuk cluster standar, gunakan namespace project cluster.TARGET_VERSION: versi target untuk upgrade yang diidentifikasi pada langkah sebelumnya, seperti1.30.1000-gke.85.
Waktu upgrade rata-rata untuk cluster Kubernetes memerlukan waktu sekitar 20 menit.
Verifikasi upgrade cluster dengan memantau resource
UserClusterUpgradeRequest:kubectl --kubeconfig MANAGEMENT_API_SERVER \ describe userclusterupgraderequest CLUSTER_NAME \ -n CLUSTER_NAMESPACEGanti kode berikut:
MANAGEMENT_API_SERVER: jalur ke file kubeconfig server API pengelolaan.CLUSTER_NAME: nama cluster Kubernetes yang akan diupgrade, sepertiuser-vm-2.CLUSTER_NAMESPACE: namespace cluster Kubernetes. Untuk cluster bersama, gunakan namespaceplatform. Untuk cluster standar, gunakan namespace project cluster.
Periksa bagian
Specdari output. Bagian ini berisiCurrent VersiondanTarget Version. Upgrade masih berlangsung jikaCurrent VersiondanTarget Versionberbeda.Spec: ... Current Version: 1.29.500-gke.60 Target Version: 1.30.1000-gke.85 Status: Conditions: - Message: Upgrade is in progress Reason: UpgradeInProgress Status: "False" Type: SucceededUpgrade selesai dan berhasil jika kondisi
Succeededmemiliki statusTrue, danCurrent Versioncocok denganTarget Version.Jika kondisi
Succeededmemiliki statusFalse, upgrade akan gagal. Jika Anda mengalami error terkait upgrade cluster Kubernetes, hubungi grup operator infrastruktur untuk mendapatkan bantuan lebih lanjut.
Memverifikasi subkomponen cluster setelah upgrade
Setelah cluster Kubernetes berhasil diupgrade, sebaiknya konfirmasi bahwa semua subkomponen cluster dalam kondisi baik.
Periksa kegagalan subkomponen di cluster Anda:
Pastikan tidak ada subkomponen yang menampilkan pesan
ReconciliationError:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get subcomponent -n CLUSTER_NAME -o json | jq -r \ '.items[] | select(.status.conditions[]?.reason == "ReconciliationError") | select(.status.featureDisabled != true) | "Sub-Component: \(.metadata.name) - \(.status.conditions[]?.message)"'Jika output menampilkan subkomponen apa pun, hubungi grup operator infrastruktur Anda untuk mendapatkan bantuan lebih lanjut.
Pastikan tidak ada subkomponen yang menampilkan pesan
Reconciling:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get subcomponent -n CLUSTER_NAME -o json | jq -r \ '.items[] | select(.status.conditions[]?.reason == "Reconciling") | select(.status.featureDisabled != true) | select( "\(.status)" | contains("PreinstallPending") | not) | "Sub-Component: \(.metadata.name) - \(.status.conditions[]?.message)"'Untuk cluster Kubernetes dengan tiga node bidang kontrol dan tiga node pekerja, waktu upgrade memerlukan waktu sekitar 20 menit. Jika Anda masih melihat subkomponen dalam status
Reconcilingsetelah 20 menit, hubungi grup operator infrastruktur Anda untuk mendapatkan bantuan lebih lanjut.