Tutorial: Memutakhirkan Kubernetes di Azure Kubernetes Service (AKS)
Sebagai bagian dari siklus hidup aplikasi dan kluster, Anda mungkin ingin meningkatkan ke versi Kubernetes terbaru yang tersedia. Anda dapat meningkatkan kluster Azure Kubernetes Service (AKS) dengan menggunakan Azure CLI, Azure PowerShell, atau portal Azure.
Dalam tutorial ini, bagian tujuh dari tujuh, Anda belajar cara:
- Identifikasi versi Kubernetes saat ini dan yang tersedia.
- Tingkatkan node Kubernetes Anda.
- Memvalidasi peningkatan yang berhasil.
Sebelum Anda mulai
Dalam tutorial sebelumnya, aplikasi dimas ke dalam gambar kontainer, dan gambar kontainer ini diunggah ke Azure Container Registry (ACR). Anda juga membuat kluster AKS. Aplikasi kemudian disebarkan ke kluster AKS. Jika Anda belum melakukan langkah-langkah ini dan ingin mengikuti, mulailah dengan Tutorial 1: Menyiapkan aplikasi untuk AKS.
- Jika Anda menggunakan Azure CLI, tutorial ini mengharuskan Anda menjalankan Azure CLI versi 2.34.1 atau yang lebih baru. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Pasang CLI Azure. - Jika Anda menggunakan Azure PowerShell, tutorial ini mengharuskan Anda menjalankan 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 memutakhirkan kluster, gunakan perintah az aks get-upgrades untuk memeriksa rilis Kubernetes mana yang tersedia.
az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
Dalam contoh output berikut, versi saat ini adalah 1.18.10, dan versi yang tersedia ditampilkan di bawah peningkatan.
{
"agentPoolProfiles": null,
"controlPlaneProfile": {
"kubernetesVersion": "1.18.10",
...
"upgrades": [
{
"isPreview": null,
"kubernetesVersion": "1.19.1"
},
{
"isPreview": null,
"kubernetesVersion": "1.19.3"
}
]
},
...
}
Mutakhirkan kluster
Simpul AKS dikaitkan dengan hati-hati dan dikosongkan untuk meminimalkan potensi gangguan pada aplikasi yang berjalan. Langkah-langkah berikut dilakukan selama proses ini:
- Penjadwal Kubernetes mencegah pod tambahan dijadwalkan pada simpul yang akan ditingkatkan.
- Pod yang berjalan pada simpul dijadwalkan pada simpul lain di kluster.
- Simpul baru dibuat yang menjalankan komponen Kubernetes terbaru.
- Ketika simpul baru siap dan bergabung ke kluster, penjadwal Kubernetes mulai menjalankan pod pada simpul baru.
- Simpul lama dihapus, dan simpul berikutnya dalam kluster memulai proses cordon dan drain.
Catatan
Jika tidak ada patch yang ditentukan, kluster akan secara otomatis ditingkatkan ke patch GA terbaru versi minor yang ditentukan. Misalnya, mengatur --kubernetes-version
ke 1.21
akan mengakibatkan kluster ditingkatkan ke 1.21.9
.
Saat meningkatkan berdasarkan versi minor alias, hanya versi minor yang lebih tinggi yang didukung. Misalnya, meningkatkan dari 1.20.x
ke 1.20
tidak akan memicu peningkatan ke patch 1.20
GA terbaru, tetapi meningkatkan ke 1.21
akan memicu peningkatan ke patch 1.21
GA terbaru.
Gunakan perintah az aks upgrade untuk meningkatkan kluster AKS Anda.
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--kubernetes-version KUBERNETES_VERSION
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.19.1. Perhatikan bahwa kubernetesVersion sekarang melaporkan 1.19.1.
{
"agentPoolProfiles": [
{
"count": 3,
"maxPods": 110,
"name": "nodepool1",
"osType": "Linux",
"storageProfile": "ManagedDisks",
"vmSize": "Standard_DS1_v2",
}
],
"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.19.1",
"location": "eastus",
"name": "myAKSCluster",
"type": "Microsoft.ContainerService/ManagedClusters"
}
Menampilkan peristiwa peningkatan
Saat Anda meningkatkan kluster, peristiwa Kubernetes berikut dapat terjadi pada node:
- Lonjakan: Buat simpul lonjakan.
- Pengurasan: Pod sedang dikeluarkan dari simpul. Setiap pod memiliki batas waktu 5 menit untuk menyelesaikan pengeluaran.
- Pembaruan: Pembaruan simpul telah berhasil atau gagal.
- Hapus: Menghapus simpul lonjakan.
Gunakan kubectl get events
untuk menampilkan peristiwa di ruang nama default saat menjalankan peningkatan.
kubectl get events
Contoh output berikut menunjukkan beberapa peristiwa di atas yang tercantum selama pemutakhiran.
...
default 2m1s Normal Drain node/aks-nodepool1-96663640-vmss000001 Draining node: [aks-nodepool1-96663640-vmss000001]
...
default 9m22s Normal Surge node/aks-nodepool1-96663640-vmss000002 Created a surge node [aks-nodepool1-96663640-vmss000002 nodepool1] for agentpool %!s(MISSING)
...
Memvalidasi pemutakhiran
Konfirmasikan bahwa peningkatan berhasil menggunakan perintah az aks show .
az aks show --resource-group myResourceGroup --name myAKSCluster --output table
Contoh output berikut menunjukkan kluster AKS menjalankan KubernetesVersion 1.19.1:
Name Location ResourceGroup KubernetesVersion CurrentKubernetesVersion ProvisioningState Fqdn
------------ ---------- --------------- ------------------- ------------------------ ------------------- ----------------------------------------------------------------
myAKSCluster eastus myResourceGroup 1.19.1 1.19.1 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. Simpul Kubernetes berjalan pada komputer virtual Azure dan terus dikenakan biaya bahkan jika Anda tidak menggunakan kluster.
Gunakan perintah az group delete untuk menghapus grup sumber daya, layanan kontainer, dan semua sumber daya terkait.
az group delete --name myResourceGroup --yes --no-wait
Catatan
Saat Anda menghapus kluster, perwakilan layanan Azure Active Directory (AAD) yang digunakan oleh kluster AKS tidak dihapus. Untuk langkah tentang cara menghapus perwakilan layanan, lihatPertimbangan 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.