Tahap Upgrade: AnthosBareMetal

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:

  1. Pemeriksaan pra-penerbangan dijalankan untuk memastikan node siap diupgrade.
  2. Node dikuras untuk bersiap melakukan upgrade
  3. Versi Kubernetes di node diupgrade.
  4. Pemeriksaan pasca-penerbangan dijalankan untuk memastikan upgrade node berhasil.
  5. Resource InventoryMachine untuk node dihapus dari maintenance. 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:

  1. Resource InventoryMachine untuk node ditempatkan di bawah maintenance.
  2. Resource BaremetalMachine ditempatkan di bawah maintenance.
  3. Node Kubernetes ditandai dengan baremetal.cluster.gke.io/maintenance: NoSchedule
  4. Untuk node server khusus, semua virtual machine yang berjalan di node disiapkan untuk pengurasan dengan menyetel InventoryMachine untuk virtual machine tersebut di bagian maintenance.
  5. 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.

  1. Nama Tahap: root-admin/AnthosBareMetal

    export ADMIN_KUBECONFIG=ROOT_ADMIN_KUBECONFIG
    export CLUSTER_NAME="root-admin"
    export CLUSTER_NAMESPACE="root"
    
  2. Nama Tahap: org-admin/AnthosBareMetal

    export ADMIN_KUBECONFIG=ROOT_ADMIN_KUBECONFIG
    export CLUSTER_NAME="${ORG_NAME}-admin"
    export CLUSTER_NAMESPACE="${ORG_NAME}"
    
  3. Nama Tahap: system/AnthosBareMetal

    export ADMIN_KUBECONFIG=ORG_ADMIN_KUBECONFIG
    export CLUSTER_NAME="${ORG_NAME}-system"
    export CLUSTER_NAMESPACE="${CLUSTER_NAME}-cluster"
    
  4. Nama Tahap: service/AnthosBareMetal

    export ADMIN_KUBECONFIG=ORG_ADMIN_KUBECONFIG
    export CLUSTER_NAME="g-${ORG_NAME}-shared-service"
    export CLUSTER_NAMESPACE="${CLUSTER_NAME}-cluster"
    
  5. 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

  1. 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       Running
    
  2. Resource 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.86
    

    Jika ada mesin yang menampilkan ABM VERSION berbeda dari DESIRED ABM VERSION atau READY tidak sama dengan true, gunakan tanda -o yaml untuk mendapatkan detail selengkapnya tentang mesin tersebut.

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

    Jika ada health check yang ditampilkan sebagai tidak responsif, gunakan tanda -o yaml untuk memeriksa detailnya.

  4. 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}
    
  5. 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 yaml 
    

    Contoh 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-7cf810d7a5
    

    Jika melihat tugas yang sedang berjalan di output, Anda dapat mendeskripsikan tugas atau memeriksa log pod untuk mengetahui error.