Mengupgrade cluster

Dokumen ini menjelaskan cara mengupgrade versi Kubernetes dari cluster Kubernetes Google Distributed Cloud (GDC) dengan air gap. Anda harus merencanakan upgrade rutin untuk cluster Anda guna memastikan cluster tersebut menyertakan fitur dan perbaikan Kubernetes terbaru.

Dokumen ini ditujukan untuk audiens seperti admin 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 dicakupkan ke project dan organisasi Anda.

Peran organisasi

Untuk mencantumkan versi upgrade yang tersedia untuk cluster Kubernetes, minta Admin Org IAM 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 User Cluster Admin dari grup administrator platform, Anda harus meminta mereka untuk memberikan daftar versi upgrade Kubernetes yang tersedia.

Peran project

Untuk membuat, menghapus, mengedit, atau melihat upgrade cluster, minta Admin Project IAM Anda untuk memberi Anda peran Standard Cluster Admin (standard-cluster-admin). Peran ini terikat ke namespace project Anda.

Menyiapkan lingkungan Anda

Untuk menjalankan perintah terhadap cluster Kubernetes menggunakan API, pastikan Anda memiliki resource berikut:

  • Download dan instal gdcloud CLI.

  • Instal kubectl CLI.

  • Temukan nama cluster Kubernetes, atau tanyakan kepada anggota grup administrator platform apa nama clusternya.

  • Gunakan nama cluster Kubernetes untuk mengganti CLUSTER_NAME dalam petunjuk ini.

  • Login dan buat file kubeconfig untuk server API pengelolaan.

  • Gunakan jalur kubeconfig server API pengelolaan untuk mengganti MANAGEMENT_API_SERVER dalam petunjuk ini.

Mengupgrade cluster Kubernetes

Gunakan API UserClusterUpgradeRequest untuk mengupgrade cluster Kubernetes yang ada.

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

  1. Cantumkan 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 merupakan 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, misalnya 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 memerlukan waktu 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, misalnya 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. Bagian ini 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 status cluster setelah upgrade

Setelah cluster Kubernetes diupgrade, pastikan cluster dan komponennya berfungsi dengan baik dengan memeriksa status resource Cluster:

  1. Lihat kolom status.conditions dan status.componentsConditions dari resource Cluster:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get cluster CLUSTER_NAME \
        -n CLUSTER_NAMESPACE -o yaml
    

    Ganti kode berikut:

    • MANAGEMENT_API_SERVER: jalur ke file kubeconfig server API pengelolaan.
    • CLUSTER_NAME: nama cluster Kubernetes, seperti user-vm-2.
    • CLUSTER_NAMESPACE: namespace cluster Kubernetes. Untuk cluster bersama, gunakan namespace platform. Untuk cluster standar, gunakan namespace project cluster.
  2. Pada output, verifikasi hal berikut di bagian status:

    • Di status.conditions, pastikan kondisi Ready memiliki status True, dan kondisi Reconciling memiliki status False.
    • Di status.componentsConditions, pastikan kondisi Ready memiliki status dari True, kondisi Reconciling memiliki status dari False, dan tidak ada kondisi yang menunjukkan reason dari ReconciliationError atau Reconciling.

    Untuk cluster Kubernetes dengan tiga node bidang kontrol dan tiga worker node, upgrade memerlukan waktu sekitar 20 menit. Jika cluster atau komponennya tetap dalam status Reconciling setelah 20 menit, atau jika ada kondisi yang menunjukkan ReconciliationError, hubungi grup operator infrastruktur Anda untuk mendapatkan bantuan lebih lanjut.

Langkah berikutnya