Bagikan melalui


Menghentikan peningkatan kluster Azure Kubernetes Service (AKS) secara otomatis pada perubahan pemutusan API

Untuk tetap berada dalam versi Kubernetes yang didukung, Anda harus meningkatkan kluster setidaknya sekali per tahun dan mempersiapkan semua kemungkinan gangguan. Gangguan ini termasuk yang disebabkan oleh perubahan pemecahan API, penghentian, dan dependensi seperti Helm dan Container Storage Interface (CSI). Mungkin sulit untuk mengantisipasi gangguan ini dan memigrasikan beban kerja penting tanpa mengalami waktu henti.

AKS sekarang secara otomatis menghentikan operasi peningkatan yang terdiri dari perubahan versi minor dengan API yang tidak digunakan lagi dan mengirimi Anda pesan kesalahan untuk memberi tahu Anda tentang masalah tersebut.

Sebelum Anda mulai

Sebelum memulai, pastikan Anda memenuhi prasyarat berikut:

  • Operasi peningkatan adalah perubahan versi minor Kubernetes untuk sarana kontrol kluster.
  • Versi Kubernetes yang Anda tingkatkan adalah 1.26 atau yang lebih baru.
  • Penggunaan API terakhir yang tidak digunakan lagi untuk versi yang ditargetkan yang Anda tingkatkan harus terjadi dalam waktu 12 jam sebelum operasi peningkatan. AKS merekam penggunaan per jam, sehingga penggunaan API yang tidak digunakan lagi dalam waktu satu jam tidak dijamin muncul dalam deteksi.

Mengurangi operasi peningkatan yang dihentikan

Jika Anda memenuhi prasyarat, coba tingkatkan, dan terima pesan kesalahan yang mirip dengan contoh pesan kesalahan berikut:

Bad Request({
  "code": "ValidationError",
  "message": "Control Plane upgrade is blocked due to recent usage of a Kubernetes API deprecated in the specified version. Please refer to https://kubernetes.io/docs/reference/using-api/deprecation-guide to migrate the usage. To bypass this error, set enable-force-upgrade in upgradeSettings.overrideSettings. Bypassing this error without migrating usage will result in the deprecated Kubernetes API calls failing. Usage details: 1 error occurred:\n\t* usage has been detected on API flowcontrol.apiserver.k8s.io.prioritylevelconfigurations.v1beta1, and was recently seen at: 2023-03-23 20:57:18 +0000 UTC, which will be removed in 1.26\n\n",
  "subcode": "UpgradeBlockedOnDeprecatedAPIUsage"
})

Anda memiliki dua opsi untuk mengurangi masalah. Anda dapat menghapus penggunaan API yang tidak digunakan lagi (disarankan) atau melewati validasi untuk mengabaikan perubahan API.

  1. Di portal Azure, navigasikan ke halaman gambaran umum kluster Anda, dan pilih Diagnosis dan selesaikan masalah.

  2. Navigasikan ke kategori Buat, Tingkatkan, Hapus, dan Skala , dan pilih penghentian API Kubernetes.

    A screenshot of the Azure portal showing the 'Selected Kubernetes API deprecations' section.

  3. Tunggu 12 jam sejak penggunaan API terakhir yang tidak digunakan lagi terlihat. Periksa kata kerja dalam penggunaan API yang tidak digunakan lagi untuk mengetahui apakah itu jam tangan.

  4. Coba lagi peningkatan kluster Anda.

Anda juga dapat memeriksa penggunaan API sebelumnya dengan mengaktifkan Container Insights dan menjelajahi log audit kube. Periksa kata kerja dalam penggunaan API yang tidak digunakan lagi untuk memahami apakah itu kasus penggunaan jam tangan .

Melewati validasi untuk mengabaikan perubahan API

Catatan

Metode ini mengharuskan Anda menggunakan Azure CLI versi 2.53 atau yang lebih baru. Jika ekstensi CLI terinstal aks-preview , Anda harus memperbarui ke versi atau versi yang 0.5.154 lebih baru. Metode ini tidak disarankan, karena API yang tidak digunakan lagi dalam versi Kubernetes yang ditargetkan mungkin tidak berfungsi dalam jangka panjang. Sebaiknya hapus sesegera mungkin setelah peningkatan selesai.

  • Lewati validasi untuk mengabaikan perubahan pemutusan API menggunakan az aks update perintah . enable-force-upgrade Tentukan bendera dan atur upgrade-override-until properti untuk menentukan akhir jendela di mana validasi dilewati. Jika tidak ada nilai yang diatur, nilai default jendela menjadi tiga hari dari waktu saat ini. Tanggal dan waktu yang Anda tentukan harus di masa mendatang.

    az aks update --name myAKSCluster --resource-group myResourceGroup --enable-force-upgrade --upgrade-override-until 2023-10-01T13:00:00Z
    

    Catatan

    Z adalah penunjuk zona untuk offset nol UTC/GMT, juga dikenal sebagai waktu 'Zulu'. Contoh ini mengatur akhir jendela ke 13:00:00 GMT. Untuk informasi selengkapnya, lihat Representasi tanggal dan waktu gabungan.

  • Setelah perintah sebelumnya berhasil, Anda dapat mencoba kembali operasi peningkatan.

    az aks upgrade --name myAKSCluster --resource-group myResourceGroup --kubernetes-version <KUBERNETES_VERSION>
    

Langkah berikutnya

Artikel ini menunjukkan kepada Anda cara menghentikan peningkatan kluster AKS secara otomatis pada perubahan pemecahan API. Untuk mempelajari selengkapnya tentang opsi peningkatan untuk kluster AKS, lihat Opsi peningkatan untuk kluster Azure Kubernetes Service (AKS).