Bagikan melalui


Tutorial - Meningkatkan kluster Azure Kubernetes Service (AKS)

Sebagai bagian dari aplikasi dan siklus hidup kluster, Anda mungkin ingin meningkatkan ke versi kubernetes terbaru yang tersedia. Anda dapat meningkatkan kluster Azure Kubernetes Service (AKS) menggunakan Azure CLI, Azure PowerShell, atau portal Azure.

Dalam tutorial ini, bagian tujuh dari tujuh, Anda meningkatkan kluster AKS. Anda akan mempelajari cara untuk:

  • Identifikasi versi Kubernetes saat ini dan yang tersedia.
  • Tingkatkan node Kubernetes Anda.
  • Memvalidasi peningkatan yang berhasil.

Sebelum Anda mulai

Dalam tutorial sebelumnya, Anda mengemas aplikasi ke dalam gambar kontainer dan mengunggah gambar kontainer ke Azure Container Registry (ACR). Anda juga membuat kluster AKS dan menyebarkan aplikasi ke dalamnya. Jika Anda belum menyelesaikan langkah-langkah ini dan ingin mengikutinya, mulailah dengan Tutorial 1 - Siapkan aplikasi untuk AKS.

Jika menggunakan Azure CLI, tutorial ini memerlukan Azure CLI versi 2.34.1 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.

Jika menggunakan Azure PowerShell, tutorial ini memerlukan Azure PowerShell versi 5.9.0 atau yang lebih baru. Jalankan Get-InstalledModule -Name Az untuk menemukan versinya. Jika Anda perlu menginstal atau meningkatkan, lihat Install modul Azure PowerShell.

Dapatkan versi kluster yang tersedia

  • Sebelum meningkatkan, periksa rilis Kubernetes mana yang tersedia untuk kluster Anda menggunakan az aks get-upgrades perintah .

    az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
    

    Contoh output berikut menunjukkan versi saat ini sebagai 1.28.9 dan mencantumkan versi yang tersedia di bawah upgrades:

      {
        "agentPoolProfiles": null,
        "controlPlaneProfile": {
          "kubernetesVersion": "1.28.9",
          ...
          "upgrades": [
            {
              "isPreview": null,
              "kubernetesVersion": "1.29.4"
            },
            {
              "isPreview": null,
              "kubernetesVersion": "1.29.2"
            }
          ]
        },
        ...
      }
    

Meningkatkan kluster AKS

Simpul AKS disambungkan dan dikosongkan dengan hati-hati untuk meminimalkan potensi gangguan pada aplikasi yang berjalan. Selama proses ini, AKS melakukan langkah-langkah berikut:

  • Menambahkan simpul buffer baru (atau node sebanyak yang dikonfigurasi dalam lonjakan maks) ke kluster yang menjalankan versi Kubernetes yang ditentukan.
  • Cordon dan menguras salah satu node lama untuk meminimalkan gangguan pada aplikasi yang sedang berjalan. Jika Anda menggunakan lonjakan maks, itu menghubungkan dan menguras sebanyak simpul pada saat yang sama dengan jumlah simpul buffer yang ditentukan.
  • Ketika simpul lama sepenuhnya dikosongkan, simpul ini dicitrakan ulang untuk menerima versi baru dan menjadi simpul buffer untuk simpul berikut yang akan ditingkatkan.
  • Proses ini berulang hingga semua simpul dalam kluster telah ditingkatkan.
  • Pada akhir proses, simpul buffer terakhir dihapus, mempertahankan jumlah simpul agen dan keseimbangan zona yang ada.

Catatan

Jika tidak ada patch yang ditentukan, kluster secara otomatis meningkatkan ke patch GA terbaru versi minor yang ditentukan. Misalnya, pengaturan --kubernetes-version untuk 1.28 menghasilkan kluster yang ditingkatkan ke 1.28.9.

Untuk informasi selengkapnya, lihat Peningkatan versi minor Kubernetes yang didukung di AKS.

Anda dapat meningkatkan kluster secara manual atau mengonfigurasi peningkatan kluster otomatis. Sebaiknya konfigurasikan peningkatan kluster otomatis untuk memastikan kluster Anda selalu menjalankan versi terbaru Kubernetes.

Meningkatkan kluster secara manual

  • Tingkatkan kluster Anda menggunakan az aks upgrade perintah .

    az aks upgrade \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --kubernetes-version KUBERNETES_VERSION
    
  • Anda akan diminta untuk mengonfirmasi operasi peningkatan, dan untuk mengonfirmasi bahwa Anda ingin meningkatkan sarana kontrol dan semua kumpulan simpul ke versi Kubernetes yang dipilih:

     Are you sure you want to perform this operation? (y/N): y
    Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.29.2. Continue? (y/N): y
    

    Catatan

    Anda hanya dapat memutakhirkan satu versi minor sekaligus. Misalnya, Anda dapat meningkatkan dari 1.14.x ke 1.15.x, tetapi Anda tidak dapat meningkatkan dari 1.14.x ke 1.16.x secara langsung. Untuk meningkatkan dari 1.14.x ke 1.16.x, Anda harus terlebih dahulu meningkatkan dari 1.14.x ke 1.15.x, lalu melakukan peningkatan lain dari 1.15.x ke 1.16.x.

    Contoh output berikut menunjukkan hasil peningkatan ke 1.29.2. Perhatikan sekarang kubernetesVersion menunjukkan 1.29.2:

    {
      ...
      "agentPoolProfiles": [
        {
          ...
          "count": 3,
          "currentOrchestratorVersion": "1.29.2",
          "maxPods": 110,
          "name": "nodepool1",
          "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202405.27.0",
          "orchestratorVersion": "1.29.2",
          "osType": "Linux",
          "upgradeSettings": {
            "drainTimeoutInMinutes": null,
            "maxSurge": "10%",
            "nodeSoakDurationInMinutes": null,
            "undrainableNodeBehavior": null
          },
          "vmSize": "Standard_DS2_v2",
          ...
        }
      ],
      ...
      "currentKubernetesVersion": "1.29.2",
      "dnsPrefix": "myAKSClust-myResourceGroup-19da35",
      "enableRbac": false,
      "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io",
      "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
      "kubernetesVersion": "1.29.2",
      "location": "eastus",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
      ...
    }
    

Mengonfigurasi peningkatan kluster otomatis

  • Atur saluran peningkatan otomatis pada kluster Anda menggunakan az aks update perintah dengan parameter yang --auto-upgrade-channel diatur ke patch.

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
    

Untuk informasi selengkapnya, lihat Meningkatkan kluster Azure Kubernetes Service (AKS) secara otomatis.

Meningkatkan gambar simpul AKS

AKS secara teratur menyediakan gambar node baru. Gambar simpul Linux diperbarui setiap minggu, dan gambar simpul Windows diperbarui setiap bulan. Sebaiknya tingkatkan gambar node Anda secara sering untuk menggunakan fitur AKS terbaru dan pembaruan keamanan. Untuk informasi selengkapnya, lihat Meningkatkan gambar simpul di Azure Kubernetes Service (AKS). Untuk mengonfigurasi peningkatan gambar simpul otomatis, lihat Secara otomatis meningkatkan citra sistem operasi simpul kluster Azure Kubernetes Service (AKS).

Menampilkan peristiwa peningkatan

Catatan

Saat Anda meningkatkan kluster, peristiwa Kubernetes berikut mungkin terjadi pada simpul:

  • Lonjakan: Buat simpul lonjakan.
  • Pengurasan: Keluarkan pod dari simpul. Setiap pod memiliki batas waktu lima menit untuk menyelesaikan pengeluaran.
  • Pembaruan: Pembaruan simpul telah berhasil atau gagal.
  • Hapus: Hapus node lonjakan.
  • Lihat peristiwa peningkatan di namespace default menggunakan kubectl get events perintah .

    kubectl get events --field-selector source=upgrader
    

    Contoh output berikut menunjukkan beberapa peristiwa di atas yang tercantum selama peningkatan:

    LAST SEEN   TYPE      REASON    OBJECT                                   MESSAGE
    ...
    5m          Normal    Drain     node/aks-nodepool1-96663640-vmss000000   Draining node: aks-nodepool1-96663640-vmss000000
    5m          Normal    Upgrade   node/aks-nodepool1-96663640-vmss000000   Deleting node aks-nodepool1-96663640-vmss000000 from API server
    4m          Normal    Upgrade   node/aks-nodepool1-96663640-vmss000000   Successfully reimaged node: aks-nodepool1-96663640-vmss000000
    4m          Normal    Upgrade   node/aks-nodepool1-96663640-vmss000000   Successfully upgraded node: aks-nodepool1-96663640-vmss000000
    4m          Normal    Drain     node/aks-nodepool1-96663640-vmss000000   Draining node: aks-nodepool1-96663640-vmss000000
    ...
    

Memvalidasi pemutakhiran

  • Konfirmasikan bahwa pemutakhiran berhasil menggunakan az aks show perintah .

    az aks show --resource-group myResourceGroup --name myAKSCluster --output table
    

    Contoh output berikut menunjukkan kluster AKS menjalankan KubernetesVersion 1.27.3:

    Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
    ------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
    myAKSCluster  eastus      myResourceGroup  1.29.2               1.29.2                    Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io
    

Menghapus kluster

Karena tutorial ini adalah bagian terakhir dari seri ini, Anda mungkin ingin menghapus kluster AKS Anda untuk menghindari dikenakan biaya Azure.

  • Hapus grup sumber daya, layanan kontainer, dan semua sumber daya terkait menggunakan az group delete perintah .

    az group delete --name myResourceGroup --yes --no-wait
    

Catatan

Saat Anda menghapus kluster, perwakilan layanan Microsoft Entra yang digunakan oleh kluster AKS tidak dihapus. Untuk langkah tentang cara menghapus perwakilan layanan, lihat Pertimbangan dan penghapusan perwakilan layanan AKS. Jika Anda menggunakan identitas terkelola, identitas dikelola oleh platform dan tidak mengharuskan Anda menyediakan atau memutar rahasia apa pun.

Langkah berikutnya

Dalam tutorial ini, Anda memutakhirkan Kubernetes dalam kluster AKS. Anda mempelajari cara untuk:

  • Identifikasi versi Kubernetes saat ini dan yang tersedia.
  • Tingkatkan node Kubernetes Anda.
  • Memvalidasi peningkatan yang berhasil.

Untuk informasi selengkapnya tentang AKS, lihat gambaran umum AKS. Untuk panduan tentang cara membuat solusi lengkap dengan AKS, lihat panduan solusi AKS.