Tahap ini mengupgrade versi dan add-on Kubernetes untuk cluster Kubernetes.
Tahap ini juga menjalankan tugas upgrade mz-location-upgrade.
Upgrade cluster dilakukan pada satu node cluster dalam satu waktu. Langkah-langkah tingkat tinggi dalam upgrade cluster adalah sebagai berikut:
- Pemeriksaan pra-penerbangan dijalankan untuk memastikan node siap diupgrade.
- Node dikuras untuk bersiap melakukan upgrade
- Versi Kubernetes di node diupgrade.
- Pemeriksaan pasca-penerbangan dijalankan untuk memastikan upgrade node berhasil.
- Resource
InventoryMachineuntuk node dihapus darimaintenance. Hal ini memungkinkan node siap menerima pod lagi.
Proses pengurasan node
Menguras node melibatkan pemindahan semua beban kerja yang berjalan di node tersebut secara tertib dari node tersebut. Proses ini terdiri dari langkah-langkah berikut:
- Resource
InventoryMachineuntuk node ditempatkan di bawahmaintenance. - Resource
BaremetalMachineditempatkan di bawahmaintenance. - Node Kubernetes ditandai dengan
baremetal.cluster.gke.io/maintenance:NoSchedule - Untuk node server khusus, semua virtual machine yang berjalan di node disiapkan untuk pengurasan dengan menyetel
InventoryMachineuntuk virtual machine tersebut di bagianmaintenance. - Pod yang berjalan di Node Kubernetes akan dikeluarkan secara tuntas. Setiap pod diberi waktu hingga 80 menit untuk menghentikan proses dengan benar.
Dapatkan kubeconfig, nama cluster, dan namespace cluster admin
Untuk menyeleksi masalah pada tahap ini, Anda memerlukan KUBECONFIG cluster admin serta nama dan namespace cluster yang sedang diupgrade. Tetapkan ORG_NAME ke organisasi yang upgrade-nya Anda pantau.
export ORG_NAME=ORG_NAME
Pilih salah satu opsi berikut berdasarkan cluster yang ditentukan dalam nama tahap.
Nama Tahap: root-admin/AnthosBareMetal
export ADMIN_KUBECONFIG=ROOT_ADMIN_KUBECONFIG export CLUSTER_NAME="root-admin" export CLUSTER_NAMESPACE="root"Nama Tahap: org-admin/AnthosBareMetal
export ADMIN_KUBECONFIG=ROOT_ADMIN_KUBECONFIG export CLUSTER_NAME="${ORG_NAME}-admin" export CLUSTER_NAMESPACE="${ORG_NAME}"Nama Tahap: system/AnthosBareMetal
export ADMIN_KUBECONFIG=ORG_ADMIN_KUBECONFIG export CLUSTER_NAME="${ORG_NAME}-system" export CLUSTER_NAMESPACE="${CLUSTER_NAME}-cluster"Nama Tahap: service/AnthosBareMetal
export ADMIN_KUBECONFIG=ORG_ADMIN_KUBECONFIG export CLUSTER_NAME="g-${ORG_NAME}-shared-service" export CLUSTER_NAMESPACE="${CLUSTER_NAME}-cluster"Upgrade Cluster Pengguna
export ADMIN_KUBECONFIG=ORG_ADMIN_KUBECONFIG export CLUSTER_NAME=USER_CLUSTER_NAME export CLUSTER_NAMESPACE="${CLUSTER_NAME}-cluster"
Resource yang akan dipantau
Cluster resource ABM clusters.baremetal.cluster.gke.io
kubectl get cluster -n "${CLUSTER_NAMESPACE}" "${CLUSTER_NAME}" --kubeconfig=${ADMIN_KUBECONFIG}Contoh Output
NAME ABM VERSION DESIRED ABM VERSION CLUSTER STATE root-admin 1.29.400-gke.86 1.29.400-gke.86 RunningResource ABM BaremetalMachine
kubectl get baremetalmachines -n "${CLUSTER_NAMESPACE}" --kubeconfig=${ADMIN_KUBECONFIG}Contoh Output
NAME CLUSTER READY INSTANCEID MACHINE ABM VERSION DESIRED ABM VERSION 10.8.0.2 root-admin true baremetal://10.8.0.2 10.8.0.2 1.29.400-gke.86 1.29.400-gke.86 10.8.0.3 root-admin true baremetal://10.8.0.3 10.8.0.3 1.29.400-gke.86 1.29.400-gke.86 10.8.0.4 root-admin true baremetal://10.8.0.4 10.8.0.4 1.29.400-gke.86 1.29.400-gke.86Jika ada mesin yang menampilkan
ABM VERSIONberbeda dariDESIRED ABM VERSIONatauREADYtidak sama dengantrue, gunakan tanda-o yamluntuk mendapatkan detail selengkapnya tentang mesin tersebut.HealthChecks jika node gagal memasuki atau keluar dari mode pemeliharaan.
export MACHINE_IP=MACHINE_IP kubectl get healthchecks -n kube-system --kubeconfig=${ADMIN_KUBECONFIG}Contoh Output
NAMESPACE NAME COMPONENT NAMESPACE STATUS LAST_COMPLETED kube-system bm-system-10.8.0.2-machine Healthy 14m kube-system bm-system-10.8.0.3-machine Healthy 14m kube-system bm-system-10.8.0.4-machine Healthy 5m43s kube-system bm-system-add-ons-add-ons Healthy 46m kube-system bm-system-add-ons-configdrift Healthy 46mJika ada health check yang ditampilkan sebagai tidak responsif, gunakan tanda
-o yamluntuk memeriksa detailnya.Log pengontrol untuk memeriksa error
export MACHINE_IP=MACHINE_IP kubectl logs -n kube-system -l baremetal.cluster.gke.io/lifecycle-controller-component=true | grep ${MACHINE_IP} kubectl logs -n capi-system -l baremetal.cluster.gke.io/lifecycle-controller-component=true | grep ${MACHINE_IP}Periksa apakah ada tugas upgrade yang sedang berjalan atau gagal pada tahap ini.
export KUBECONFIG=ROOT_ADMIN_KUBECONFIG kubectl get upgradetaskrequests -n gpc-system -o json | jq '.items[] | select(.status.conditions[].status=="Unknown") | .metadata.name'Contoh Output
"upg-task-org-1-os-node-upgrade-task-whg8v"export KUBECONFIG=ROOT_ADMIN_KUBECONFIG export UPGRADE_TASK=$(kubectl get upgradetaskrequests -n gpc-system -o json | jq -r '.items[] | select(.status.conditions[].status=="Unknown") | .metadata.name') kubectl get upgradetaskrequests -n gpc-system "${UPGRADE_TASK}" -o yamlContoh Output
status: conditions: - lastTransitionTime: "2024-09-25T16:26:33Z" message: job gpc-system/v1.13.0-os-7cf810d7a5-upg-task-org-1-os-node-upgra-4n5t6 is running observedGeneration: 1 reason: JobRunning status: Unknown type: Succeeded upgradeTaskResponse: name: upg-task-org-1-os-node-upgrade-task-whg8v-v1.13.0-os-7cf810d7a5Jika melihat tugas yang sedang berjalan di output, Anda dapat mendeskripsikan tugas atau memeriksa log pod untuk mengetahui error.