Tutorial: Durchführen eines Upgrades für einen Azure Kubernetes Service-Cluster (AKS)
Im Rahmen des Anwendungs- und Clusterlebenszyklus möchten Sie möglicherweise ein Upgrade auf die neueste verfügbare Version von Kubernetes durchführen. Sie können ein Upgrade für Ihren Azure Kubernetes Service(AKS)-Cluster über die Azure CLI, Azure PowerShell oder über das Azure-Portal durchführen.
In diesem Tutorial (Teil 7 von 7) führen Sie ein Upgrade für einen AKS-Cluster durch. Folgendes wird vermittelt:
- Identifizieren der aktuellen und verfügbaren Kubernetes-Versionen
- Durchführen von Upgrades für Ihre Kubernetes-Knoten
- Überprüfen des erfolgreichen Upgrades
Voraussetzungen
In vorherigen Tutorials haben Sie eine Anwendung in ein Containerimage gepackt und das Containerimage in Azure Container Registry (ACR) hochgeladen. Außerdem haben Sie einen AKS-Cluster erstellt und eine Anwendung dafür bereitgestellt. Wenn Sie diese Schritte noch nicht ausgeführt haben und dieses Tutorial durcharbeiten möchten, beginnen Sie mit Tutorial 1:Vorbereiten einer Anwendung für AKS.
Wenn Sie die Azure CLI verwenden, erfordert dieses Tutorial die Azure CLI-Version 2.34.1 oder höher. Führen Sie az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.
Wenn Sie Azure PowerShell verwenden, erfordert dieses Tutorial die Azure PowerShell-Version 5.9.0 oder höher. Führen Sie Get-InstalledModule -Name Az
aus, um die Version zu ermitteln. Falls Sie eine Installation oder ein Upgrade ausführen müssen, finden Sie unter Installieren von Azure PowerShell weitere Informationen.
Abrufen verfügbarer Clusterversionen
Überprüfen Sie vor dem Upgrade, welche Kubernetes-Releases für Ihren Cluster verfügbar sind, indem Sie den Befehl
az aks get-upgrades
verwenden.az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
In der folgenden Beispielausgabe wird die aktuelle Version als 1.28.9 angezeigt, und die verfügbaren Versionen werden unter
upgrades
aufgeführt:{ "agentPoolProfiles": null, "controlPlaneProfile": { "kubernetesVersion": "1.28.9", ... "upgrades": [ { "isPreview": null, "kubernetesVersion": "1.29.4" }, { "isPreview": null, "kubernetesVersion": "1.29.2" } ] }, ... }
Aktualisieren eines AKS-Clusters
AKS-Knoten werden sorgfältig gesperrt und ausgeglichen, um potenzielle Unterbrechungen ausgeführter Anwendungen zu minimieren. Während dieses Vorgangs führt AKS die folgenden Schritte aus:
- Fügt dem Cluster, auf dem die angegebene Kubernetes-Version ausgeführt wird, einen neuen Pufferknoten (oder die in max surge konfigurierte Anzahl von Knoten) hinzu.
- Absperren und Ausgleichen eines der alten Knoten, um die Unterbrechung der ausgeführten Anwendungen zu minimieren. Wenn Sie „max surge“ verwenden, werden so viele Knoten gleichzeitig abgesperrt und ausgeglichen, wie die Anzahl der angegebenen Pufferknoten beträgt.
- Wenn der alte Knoten vollständig ausgeglichen wurde, wird für diesen ein Reimaging durchgeführt, damit er die neue Version erhält. Er wird dann zum Pufferknoten, damit der folgende Knoten aktualisiert werden kann.
- Dieser Prozess wird wiederholt, bis alle Knoten im Cluster aktualisiert wurden.
- Am Ende des Vorgangs wird der letzte Pufferknoten gelöscht, sodass die Anzahl der vorhandenen Agent-Knoten und der Zonensaldo beibehalten werden.
Hinweis
Ist kein Patch angegeben, wird der Cluster automatisch auf den neuesten GA-Patch der angegebenen Nebenversion aktualisiert. Wenn Sie beispielsweise --kubernetes-version
auf 1.28
festlegen, wird ein Upgrade des Clusters auf 1.28.9
durchgeführt.
Weitere Informationen finden Sie unter Unterstützte Kubernetes-Nebenversionsupgrades in AKS.
Sie können entweder den Cluster manuell aktualisieren oder automatische Clusterupgrades konfigurieren. Es wird empfohlen, automatische Clusterupgrades zu konfigurieren, um sicherzustellen, dass Ihr Cluster immer die neueste Version von Kubernetes ausführt.
Manuelles Upgrade von Clustern
Führen Sie ein Upgrade Ihres Clusters mithilfe des Befehls
az aks upgrade
durch.az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version KUBERNETES_VERSION
Sie werden aufgefordert, den Upgradevorgang zu bestätigen und zu bestätigen, dass Sie die Steuerebene und alle Knotenpools auf die ausgewählte Version von Kubernetes aktualisieren möchten:
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
Hinweis
Upgrades sind jeweils nur auf die nächste Nebenversion möglich. Beispielsweise können Sie ein Upgrade von 1.14.x auf 1.15.x durchführen, aber nicht direkt von 1.14.x auf 1.16.x. Für ein Upgrade von 1.14.x auf 1.16.x müssen Sie zuerst ein Upgrade von 1.14.x auf 1.15.x und dann ein weiteres Upgrade von 1.15.x auf 1.16.x durchführen.
In der folgenden Beispielausgabe wird das Ergebnis des Upgrades auf 1.29.2 gezeigt. Beachten Sie, dass
kubernetesVersion
jetzt 1.29.2 lautet:{ ... "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" ... }
Konfigurieren automatischer Clusterupgrades
Legen Sie einen Kanal für das automatische Upgrade für Ihren Cluster mithilfe des Befehls
az aks update
mit dem aufpatch
festgelegten--auto-upgrade-channel
-Parameter fest.az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
Weitere Informationen finden Sie unter Automatisches Upgrade für einen AKS-Cluster (Azure Kubernetes Service).
Durchführen eines Upgrades für AKS-Knotenimages
AKS stellt regelmäßig neue Knotenimages bereit. Linux-Knotenimages werden wöchentlich aktualisiert, und Windows-Knotenimages werden monatlich aktualisiert. Es wird empfohlen, die Knotenimages häufig zu aktualisieren, um die neuesten AKS-Features und Sicherheitsupdates zu verwenden. Weitere Informationen finden Sie unter Upgrade für AKS-Knotenimages in Azure Kubernetes Service (AKS). Informationen zum Konfigurieren von automatischen Knotenimageupgrades finden Sie unter Automatisches Durchführen eines Upgrades für die Betriebssystemimages von Azure Kubernetes Service-Clusterknoten (AKS).
Anzeigen der Upgradeereignisse
Hinweis
Beim Upgrade Ihres Clusters können die folgenden Kubernetes-Ereignisse auf den Knoten auftreten:
- Anstieg: Erstellen eines Surge-Knotens.
- Ausgleich: Pods werden aus dem Knoten entfernt. Für jeden Pod gilt ein Timeout von fünf Minuten beim Entfernen.
- Update: Die Aktualisierung eines Knotens war erfolgreich oder nicht erfolgreich.
- Löschen: Löschen eines Surge-Knotens.
Verwenden Sie
kubectl get events
, um Upgrade-Ereignisse in den Standard-Namespaces anzuzeigen.kubectl get events --field-selector source=upgrader
Die folgende Beispielausgabe zeigt einige der oben aufgeführten Ereignisse während eines Upgrades:
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 ...
Überprüfen eines Upgrades
Überprüfen Sie mit dem Befehl
az aks show
, ob das Upgrade erfolgreich war.az aks show --resource-group myResourceGroup --name myAKSCluster --output table
Die folgende Beispielausgabe zeigt, dass der AKS-Cluster KubernetesVersion 1.27.3 ausführt:
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
Löschen des Clusters
Da dieses Tutorial der letzte Teil der Reihe ist, ist es ratsam, Ihren AKS-Cluster zu löschen, um Azure-Gebühren zu vermeiden.
Entfernen Sie die Ressourcengruppe, den Containerdienst und alle zugehörigen Ressourcen mithilfe des Befehls
az group delete
.az group delete --name myResourceGroup --yes --no-wait
Hinweis
Wenn Sie den Cluster löschen, wird der vom AKS-Cluster verwendete Microsoft Entra-Dienstprinzipal nicht entfernt. Schritte zum Entfernen des Dienstprinzipals finden Sie unter den Überlegungen zum AKS-Dienstprinzipal und dessen Löschung. Wenn Sie eine verwaltete Identität verwendet haben, wird die Identität von der Plattform verwaltet, und Sie müssen keine Geheimnisse bereitstellen oder rotieren.
Nächste Schritte
In diesem Tutorial haben Sie Kubernetes in einem AKS-Cluster aktualisiert. Sie haben Folgendes gelernt:
- Identifizieren der aktuellen und verfügbaren Kubernetes-Versionen
- Durchführen von Upgrades für Ihre Kubernetes-Knoten
- Überprüfen des erfolgreichen Upgrades
Weitere Informationen zu AKS finden Sie unter Übersicht über AKS. Einen Leitfaden zum Erstellen von vollständiger Lösungen mit AKS finden Sie unter AKS-Lösungsanleitung.
Azure Kubernetes Service