Mengupgrade cluster

Dokumen ini menjelaskan cara mengupgrade versi Kubernetes dari cluster Kubernetes air-gapped Google Distributed Cloud (GDC). Anda harus merencanakan upgrade rutin untuk cluster 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 Dokumentasi audiens untuk GDC yang terisolasi dari internet.

Sebelum memulai

  • Download dan instal gdcloud CLI.

  • Instal kubectl CLI. Untuk mengetahui informasi selengkapnya, lihat Menginstal komponen.

  • Buat file kubeconfig untuk server API pengelolaan di zona target Anda. Untuk mengetahui informasi selengkapnya, lihat Resource cluster Kubernetes zona.

  • Untuk mendapatkan izin yang diperlukan untuk mencantumkan versi upgrade yang tersedia, minta Admin IAM Organisasi Anda untuk memberi Anda peran User Cluster Admin (user-cluster-admin).

    Jika Anda mengelola cluster standar dan tidak dapat memperoleh peran Admin Cluster Pengguna dari grup administrator platform, Anda harus meminta mereka untuk memberi Anda daftar versi upgrade Kubernetes yang tersedia.

  • Untuk mendapatkan izin yang diperlukan guna mengonfigurasi upgrade cluster, minta Admin IAM Organisasi Anda untuk memberi Anda peran Standard Cluster Admin (standard-cluster-admin).

Mengupgrade cluster Kubernetes

Gunakan API UserClusterUpgradeRequest untuk mengupgrade cluster Kubernetes yang ada.

Untuk mengupgrade cluster Kubernetes menggunakan API, ikuti langkah-langkah berikut:

  1. Mencantumkan versi upgrade Kubernetes yang tersedia dengan mencetak nilai kubernetesVersion dari objek UserClusterMetadata:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get userclustermetadata -o=custom-columns='TARGET_VERSION:.spec.kubernetesVersion'
    

    Ganti MANAGEMENT_API_SERVER dengan jalur ke file kubeconfig server API pengelolaan.

    Perintah ini akan menampilkan daftar versi Kubernetes yang tersedia:

    TARGET_VERSION
    1.30.1000-gke.85
    
  2. Catat versi Kubernetes dari output sebelumnya yang ingin Anda gunakan untuk mengupgrade cluster. targetVersion yang Anda tentukan dalam permintaan upgrade pada langkah berikutnya harus salah satu versi yang tersedia ini.

  3. 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
      EOF
    

    Ganti kode berikut:

    • MANAGEMENT_API_SERVER: jalur ke file kubeconfig server API pengelolaan.
    • CLUSTER_NAME: nama cluster Kubernetes yang akan diupgrade, seperti user-vm-2.
    • CLUSTER_NAMESPACE: namespace cluster Kubernetes. Untuk cluster bersama, gunakan namespace platform. Untuk cluster standar, gunakan namespace project cluster.
    • TARGET_VERSION: versi target untuk upgrade yang diidentifikasi pada langkah sebelumnya, seperti 1.30.1000-gke.85.

    Waktu upgrade rata-rata untuk cluster Kubernetes adalah sekitar 20 menit.

  4. Verifikasi upgrade cluster dengan memantau resource UserClusterUpgradeRequest:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        describe userclusterupgraderequest CLUSTER_NAME \
        -n CLUSTER_NAMESPACE
    

    Ganti kode berikut:

    • MANAGEMENT_API_SERVER: jalur ke file kubeconfig server API pengelolaan.
    • CLUSTER_NAME: nama cluster Kubernetes yang akan diupgrade, seperti user-vm-2.
    • CLUSTER_NAMESPACE: namespace cluster Kubernetes. Untuk cluster bersama, gunakan namespace platform. Untuk cluster standar, gunakan namespace project cluster.

    Periksa bagian Spec dari output. Berisi Current Version dan Target Version. Upgrade masih dalam proses jika Current Version dan Target Version berbeda.

    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: Succeeded
    

    Upgrade selesai dan berhasil jika kondisi Succeeded memiliki status True, dan Current Version cocok dengan Target Version.

    Jika kondisi Succeeded memiliki status False, upgrade 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 Anda berhasil diupgrade, sebaiknya konfirmasi bahwa semua subkomponen cluster berfungsi dengan baik.

Periksa kegagalan subkomponen di cluster Anda:

  1. 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, hubungi grup operator infrastruktur Anda untuk mendapatkan bantuan lebih lanjut.

  2. 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 worker node, waktu upgrade sekitar 20 menit. Jika Anda masih melihat subkomponen dalam status Reconciling setelah 20 menit, hubungi grup operator infrastruktur Anda untuk mendapatkan bantuan lebih lanjut.

Langkah berikutnya