Durchführen von Upgrades für AKS-Knotenimages (Azure Kubernetes Service)

Azure Kubernetes Service (AKS) stellt regelmäßig neue Knotenimages bereit. Es ist daher vorteilhaft, Ihre Knotenimages häufig zu aktualisieren, um die neuesten AKS-Features zu verwenden. Linux-Knotenimages werden wöchentlich aktualisiert, und Windows-Knotenimages werden monatlich aktualisiert. Ankündigungen zu Imageupgrades sind in den AKS-Versionshinweisen enthalten. Es kann bis zu einer Woche dauern, bis diese Updates in allen Regionen eingeführt werden. Knotenimageupgrades können auch automatisch durchgeführt und mithilfe der geplanten Wartung geplant werden. Weitere Informationen finden Sie unter Automatisches Upgrade von Knotenimages.

In diesem Artikel erfahren Sie, wie Sie ein Upgrade für AKS-Clusterknotenimages durchführen und Knotenpoolimages aktualisieren, ohne ein Upgrade der Kubernetes-Version durchzuführen. Informationen zum Upgrade der Kubernetes-Version für Ihren Cluster finden Sie unter Aktualisieren eines AKS-Clusters.

Hinweis

Der AKS-Cluster muss VM-Skalierungsgruppen für die Knoten verwenden.

Es ist nicht möglich, eine Knotenimageversion (z. B. AKSUbuntu-2204 auf AKSUbuntu-1804 oder AKSUbuntu-2204-202308.01.0 auf AKSUbuntu-2204-202307.27.0) herabzustufen.

Nach verfügbaren Knotenimageupgrades suchen

Suchen Sie mithilfe des az aks nodepool get-upgrades-Befehls nach verfügbaren Knotenimageupgrades.

az aks nodepool get-upgrades \
    --nodepool-name mynodepool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

Die Ausgabe zeigt latestNodeImageVersion, wie im folgenden Beispiel:

{
  "id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/mynodepool/upgradeProfiles/default",
  "kubernetesVersion": "1.17.11",
  "latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
  "name": "default",
  "osType": "Linux",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
  "upgrades": null
}

Die Beispielausgabe zeigt AKSUbuntu-1604-2020.10.28 als latestNodeImageVersion.

Vergleichen Sie die neueste Version mit Ihrer aktuellen Knotenimageversion mithilfe des az aks nodepool show-Befehls.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --query nodeImageVersion

Ihre Ausgabe sollte etwa folgendem Beispiel entsprechen:

"AKSUbuntu-1604-2020.10.08"

In diesem Beispiel ist ein Upgrade der Knotenimageversion von Version AKSUbuntu-1604-2020.10.08 auf Version AKSUbuntu-1604-2020.10.28 verfügbar.

Alle Knotenimages in allen Knotenpools aktualisieren

Aktualisieren Sie das Knotenimage mithilfe des az aks upgrade-Befehls mit des --node-image-only-Flags.

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-image-only

Sie können die Status der Knotenimages mithilfe des kubectl get nodes-Befehls überprüfen.

Hinweis

Dieser Befehl kann sich je nach verwendeten Shell geringfügig unterscheiden. Weitere Informationen zu Windows- und PowerShell-Umgebungen finden Sie in der Kubernetes JSONPath-Dokumentation.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Wenn das Upgrade beendet ist, verwenden Sie den az aks show-Befehl, um die aktualisierten Details zum Knotenpool abzurufen. Das aktuelle Knotenimage wird in der nodeImageVersion-Eigenschaft angezeigt.

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster

Aktualisieren eines bestimmten Knotenpools

Um das Betriebssystemimage eines Knotenpools zu aktualisieren, ohne ein Upgrade des Kubernetes-Clusters durchzuführen, verwenden Sie den az aks nodepool upgrade-Befehl mit dem --node-image-only-Flag.

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-image-only

Sie können die Status der Knotenimages mit dem kubectl get nodes-Befehls überprüfen.

Hinweis

Dieser Befehl kann sich je nach verwendeten Shell geringfügig unterscheiden. Weitere Informationen zu Windows- und PowerShell-Umgebungen finden Sie in der Kubernetes JSONPath-Dokumentation.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Wenn das Upgrade beendet ist, verwenden Sie den az aks nodepool show-Befehl, um die aktualisierten Details zum Knotenpool abzurufen. Das aktuelle Knotenimage wird in der nodeImageVersion-Eigenschaft angezeigt.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Aktualisieren von Knotenimages mit Knotenanstiegen

Zur Beschleunigung des Upgradeprozesses für Knotenimages können Sie Ihre Knotenimages mit einem anpassbaren Knotenanstiegswert aktualisieren. Standardmäßig verwendet AKS einen zusätzlichen Knoten, um Upgrades zu konfigurieren.

Wenn Sie die Geschwindigkeit von Upgrades erhöhen möchten, verwenden Sie den az aks nodepool update-Befehl mit dem --max-surge-Flag, um die Anzahl der Knoten zu konfigurieren, die für Upgrades verwendet werden. Weitere Informationen zu den Kompromissen verschiedener --max-surge-Einstellungen finden Sie unter --max-surge.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --max-surge 33% \
    --no-wait

Sie können die Status der Knotenimages mit dem kubectl get nodes-Befehls überprüfen.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

Verwenden Sie az aks nodepool show, um die aktualisierten Knotenpooldetails zu erhalten. Das aktuelle Knotenimage wird in der nodeImageVersion-Eigenschaft angezeigt.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

Nächste Schritte