Kurz – Upgrade clusteru Azure Kubernetes Service (AKS)
V rámci životního cyklu aplikace a clusteru můžete chtít upgradovat na nejnovější dostupnou verzi Kubernetes. Cluster Azure Kubernetes Service (AKS) můžete upgradovat pomocí Azure CLI, Azure PowerShellu nebo webu Azure Portal.
V tomto kurzu, který je sedmou částí sedmidílné části, upgradujete cluster AKS. Získáte informace pro:
- Identifikujte aktuální a dostupné verze Kubernetes.
- Upgradujte uzly Kubernetes.
- Ověřte úspěšný upgrade.
Než začnete
V předchozích kurzech jste zabalili aplikaci do image kontejneru a nahráli image kontejneru do služby Azure Container Registry (ACR). Také jste vytvořili cluster AKS a nasadili do něj aplikaci. Pokud jste tyto kroky ještě nedokončili a chcete postupovat podle pokynů, začněte kurzem 1 – Příprava aplikace pro AKS.
Pokud používáte Azure CLI, tento kurz vyžaduje Azure CLI verze 2.34.1 nebo novější. Verzi zjistíte spuštěním příkazu az --version
. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Pokud používáte Azure PowerShell, tento kurz vyžaduje Azure PowerShell verze 5.9.0 nebo novější. Verzi zjistíte spuštěním příkazu Get-InstalledModule -Name Az
. Pokud potřebujete provést instalaci nebo upgrade, přečtěte si téma Instalace Azure PowerShellu.
Získání dostupných verzí clusteru
Před upgradem pomocí příkazu zkontrolujte, které verze Kubernetes jsou pro váš cluster
az aks get-upgrades
k dispozici.az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
Následující příklad výstupu ukazuje aktuální verzi jako 1.28.9 a uvádí dostupné verze v části
upgrades
:{ "agentPoolProfiles": null, "controlPlaneProfile": { "kubernetesVersion": "1.28.9", ... "upgrades": [ { "isPreview": null, "kubernetesVersion": "1.29.4" }, { "isPreview": null, "kubernetesVersion": "1.29.2" } ] }, ... }
Upgrade clusteru AKS
Uzly AKS jsou pečlivě prováděny a vyprázdněny, aby se minimalizovaly případné přerušení spuštěných aplikací. Během tohoto procesu provede AKS následující kroky:
- Přidá do clusteru, na kterém běží zadaná verze Kubernetes, nový uzel vyrovnávací paměti (nebo libovolný počet uzlů nakonfigurovaných v maximálním nárůstu).
- Cordons a vyprázdní jeden z starých uzlů, aby se minimalizovalo přerušení spuštěných aplikací. Pokud používáte maximální nárůst výkonu, kabelony a vyprázdní tolik uzlů najednou jako počet zadaných uzlů vyrovnávací paměti.
- Když je starý uzel plně vyprázdněný, je zmagí, aby získal novou verzi a stane se uzlem vyrovnávací paměti pro následující uzel, který se má upgradovat.
- Tento proces se opakuje, dokud nebudou upgradovány všechny uzly v clusteru.
- Na konci procesu se odstraní poslední uzel vyrovnávací paměti a zachová se počet stávajících uzlů agenta a zůstatek zóny.
Poznámka:
Pokud není zadána žádná oprava, cluster se automaticky upgraduje na nejnovější opravu GA zadané podverze. Například nastavení --kubernetes-version
pro 1.28
výsledky upgradu clusteru na 1.28.9
.
Další informace najdete v tématu Podporované upgrady podverze Kubernetes v AKS.
Cluster můžete upgradovat ručně nebo nakonfigurovat automatické upgrady clusteru. Doporučujeme nakonfigurovat automatické upgrady clusteru, abyste měli jistotu, že váš cluster vždy používá nejnovější verzi Kubernetes.
Ruční upgrade clusteru
Upgradujte cluster pomocí
az aks upgrade
příkazu.az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version KUBERNETES_VERSION
Zobrazí se výzva k potvrzení operace upgradu a potvrzení, že chcete upgradovat řídicí rovinu a všechny fondy uzlů na vybranou verzi Kubernetes:
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
Poznámka:
Najednou můžete upgradovat pouze jednu dílčí verzi. Můžete například upgradovat z verze 1.14.x na verzi 1.15.x, ale nemůžete upgradovat přímo z verze 1.14.x na verzi 1.16.x . Pokud chcete upgradovat z verze 1.14.x na 1.16.x, musíte nejprve upgradovat z verze 1.14.x na 1.15.x a pak provést další upgrade z verze 1.15.x na 1.16.x.
Následující příklad výstupu ukazuje výsledek upgradu na verzi 1.29.2. Všimněte si, že
kubernetesVersion
se teď zobrazuje verze 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" ... }
Konfigurace automatických upgradů clusteru
Nastavte v clusteru kanál automatického upgradu pomocí
az aks update
příkazu s parametrem nastaveným--auto-upgrade-channel
napatch
.az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
Další informace najdete v tématu Automatické upgrade clusteru Azure Kubernetes Service (AKS).
Upgrade imagí uzlů AKS
AKS pravidelně poskytuje nové image uzlů. Image uzlů Linuxu se aktualizují každý týden a image uzlů Windows se aktualizují každý měsíc. Doporučujeme upgradovat image uzlů často, aby používaly nejnovější funkce AKS a aktualizace zabezpečení. Další informace najdete v tématu Upgrade imagí uzlů ve službě Azure Kubernetes Service (AKS). Pokud chcete nakonfigurovat automatické upgrady imagí uzlů, přečtěte si téma Automatické upgrade imagí operačního systému uzlů clusteru Azure Kubernetes Service (AKS).
Zobrazení událostí upgradu
Poznámka:
Při upgradu clusteru můžou na uzlech nastat následující události Kubernetes:
- Přepětí: Vytvoření uzlu přepětí
- Vyprázdnění: Vyřazení podů z uzlu Každý pod má 5minutový časový limit pro dokončení vyřazení.
- Aktualizace: Aktualizace uzlu byla úspěšná nebo selhala.
- Odstranění: Odstraňte přepětí uzlu.
Pomocí příkazu zobrazte události upgradu ve výchozích
kubectl get events
oborech názvů.kubectl get events --field-selector source=upgrader
Následující příklad výstupu ukazuje některé z výše uvedených událostí během upgradu:
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 ...
Ověření upgradu
Pomocí příkazu ověřte, že upgrade proběhl úspěšně
az aks show
.az aks show --resource-group myResourceGroup --name myAKSCluster --output table
Následující příklad výstupu ukazuje, že cluster AKS spouští 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
Odstranění clusteru
Vzhledem k tomu, že tento kurz je poslední částí série, možná budete chtít odstranit cluster AKS, abyste se vyhnuli poplatkům za Azure.
Pomocí příkazu odeberte skupinu prostředků, službu kontejneru a všechny související prostředky
az group delete
.az group delete --name myResourceGroup --yes --no-wait
Poznámka:
Při odstranění clusteru se neodebere instanční objekt Microsoft Entra používaný clusterem AKS. Postup odebrání instančního objektu najdete v tématu věnovaném aspektům instančního objektu AKS a jeho odstranění. Pokud jste použili spravovanou identitu, identita je spravovaná platformou a nevyžaduje zřízení ani obměně tajných kódů.
Další kroky
V tomto kurzu jste upgradovali Kubernetes v clusteru AKS. Naučili jste se:
- Identifikujte aktuální a dostupné verze Kubernetes.
- Upgradujte uzly Kubernetes.
- Ověřte úspěšný upgrade.
Další informace o AKS najdete v přehledu AKS. Pokyny k vytváření úplných řešení pomocí AKS najdete v doprovodných materiálech k řešení AKS.
Azure Kubernetes Service