Upgrade der Azure Kubernetes Service (AKS)-Clustersteuerungsebene

Azure Kubernetes Service (AKS)-Cluster bestehen aus zwei Hauptkomponenten: der Steuerungsebene, die von Azure verwaltet wird , und den Knotenpools, in denen Ihre Workloads ausgeführt werden. Dieser Artikel konzentriert sich auf das unabhängige Upgrade der Steuerebene, sodass Sie neue Kubernetes-Versionen für API-Serverfeatures einführen können, während Sie Knotenpoolupgrades separat verwalten.

Bevor Sie anfangen

  • Bei Verwendung der Azure CLI ist für diesen Artikel Azure CLI-Version 2.34.1 oder höher erforderlich. Verwenden Sie den az --version Befehl, um die Version zu finden. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren.
  • Wenn Sie Azure PowerShell verwenden, erfordert dieser Artikel die Azure PowerShell-Version 5.9.0 oder höher. Verwenden Sie das Get-InstalledModule -Name Az Cmdlet, um die Version zu finden. Falls Sie eine Installation oder ein Upgrade ausführen müssen, finden Sie unter Installieren von Azure PowerShell weitere Informationen.
  • Zum Ausführen von Upgradevorgängen benötigen Sie die Azure Kubernetes Service Mitwirkendenrolle oder gleichwertige Berechtigungen.
  • Beta-APIs sind standardmäßig deaktiviert, wenn Sie ein Upgrade auf Kubernetes, Version 1.30 und 1.27 LTS, durchführen.

Warnung

Stellen Sie sicher, dass Sie vor dem Upgrade über ausreichendes Computekontingent verfügen. Wenn das Kontingent niedrig ist, schlägt das Upgrade möglicherweise fehl. Weitere Informationen finden Sie unter Kontingenterhöhung.

Übersicht über AKS-Upgradetypen

In der folgenden Tabelle werden drei Arten von AKS-Upgrades beschrieben, wobei deren Umfang und Anwendungsfälle hervorgehoben werden:

Upgrade-Typ Geltungsbereich Anwendungsfall
Nur Steuerungsebene API-Server, etcd, Controller-Manager, Scheduler Testen neuer Kubernetes-APIs vor dem Upgrade von Workloads
Vollständiger Cluster Steuerungsebene und alle Knotenpools Standardupgrade, um den Cluster auf dem neuesten Stand zu halten
Nur Knotenpool Bestimmte Knotenpools Gestaffelter Rollout nach dem Upgrade der Steuerungsebene

Tipp

Durch das Upgrade der Steuerebene können Sie zunächst die Kubernetes-API-Kompatibilität überprüfen, bevor sie die Ausführung von Workloads beeinträchtigen. Informationen zu Upgrade-Strategien für Knotenpools finden Sie unter Konfigurieren paralleler Upgrades.

Kubernetes-Versionsupgraderegeln

Wenn Sie ein Upgrade eines unterstützten Nicht-LTS AKS-Clusters durchführen, können Sie Kubernetes-Nebenversionen nicht überspringen. Sie müssen alle Upgrades in der Reihenfolge der Unterversionsnummer ausführen. Beispielsweise sind Upgrades zwischen 1.28.x ->1.29.x oder 1.29.x ->1.30.x zulässig. 1.28.x ->1.30.x ist nicht zulässig.

Ein LTS-Cluster kann Nebenversionen überspringen, wenn sie zu einer höheren LTS-Version wechseln, die von AKS angeboten wird, vorausgesetzt, das Upgrade erfüllt versionsverzerrte Anforderungen und Validierungsprüfungen. Weitere Informationen finden Sie unter Kann ich während eines Clusterupgrades mehrere AKS-Versionen überspringen?.

Ab Kubernetes 1.28 kann die Steuerebene bis zu drei Nebenversionen vor Knotenpools sein. Wenn sich ihre Steuerebene beispielsweise auf 1.35.x befindet, können Sich ihre Knotenpools auf 1.32.x, 1.33.x, 1.34.x oder 1.35.x befinden. Aktuelle Einschränkungen finden Sie in der AKS-Versions-Skew-Richtlinie.

Verfügbare AKS-Upgrades überprüfen

Tipp

Wenn Sie mit den neuesten AKS-Versionen und -Updates auf dem neuesten Stand bleiben möchten, lesen Sie die AKS-Versionsverfolgung.

Suchen Sie mithilfe des az aks get-upgrades Befehls nach verfügbaren Kubernetes-Versionen für Ihren AKS-Cluster.

az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name> --output table

Die folgende Beispielausgabe zeigt die aktuelle Version als 1.28.9 an und führt die verfügbaren Versionen unter upgrades auf:

Name     ResourceGroup          MasterVersion    Upgrades
-------  ---------------        ---------------  --------------
default  <resource-group-name>  1.28.9           1.29.2, 1.29.4

Aktualisieren Sie nur die AKS-Steuerungsebene

Important

Sie können kein Upgrade nur für die Steuerungsebene ausführen, wenn das automatische Upgrade des Clusters aktiviert ist. Cluster autoupgrade aktualisiert immer die Steuerebene und alle Knotenpools zusammen.

  1. Aktualisieren Sie die Steuerungsebene mithilfe des az aks upgrade-Befehls mit dem --control-plane-only-Flag. Im folgenden Beispiel wird die Steuerebene auf Kubernetes, Version 1.29.4, aktualisiert:

    az aks upgrade \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --kubernetes-version 1.29.4 \
        --control-plane-only
    
  2. Vergewissern Sie sich, dass das Upgrade der Steuerebene erfolgreich war, indem Sie den az aks show Befehl verwenden.

    az aks show --resource-group <resource-group-name> --name <cluster-name> --output table
    

    Die folgende Beispielausgabe zeigt, dass die Steuerebene nun auf 1.29.4 läuft.

    Name            Location    ResourceGroup          KubernetesVersion    ProvisioningState    Fqdn
    ------------    ----------  ---------------        -------------------  -------------------  ------------------------------------------------
    <cluster-name>  eastus      <resource-group-name>  1.29.4               Succeeded            <cluster-name>-dns-123abcd4.hcp.eastus.azmk8s.io
    
  3. Überprüfen Sie, ob die Knotenpoolversionen mit dem az aks nodepool list Befehl unverändert bleiben.

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name> --query "[].{Name:name,Version:orchestratorVersion}" --output table
    

    In der Ausgabe sollten die Knotenpools weiterhin die vorherige Kubernetes-Version anzeigen.

Upgrade des vollständigen AKS-Clusters

Hinweis

Während eines vollständigen Clusterupgrades aktualisiert AKS zuerst die Steuerungsebene und aktualisiert dann jeden Knotenpool sequenziell. Für eine bessere Kontrolle über Knotenpool-Upgrades siehe Konfigurieren von Rolling-Upgrades.

Aktualisieren Sie den vollständigen Cluster (Steuerebene und alle Knotenpools) mithilfe des az aks upgrade Befehls. Im folgenden Beispiel wird der Cluster auf Kubernetes, Version 1.29.4, aktualisiert:

az aks upgrade \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --kubernetes-version 1.29.4

AKS-Steuerflugzeugupgrade häufig gestellte Fragen (FAQ)

Aktualisiert ein Upgrade nur für die Steuerungsebene auch Knotenpools?

Nein. Ein Nur-Steuerelement-Upgrade ändert keine Knotenpools. Das automatische Clusterupgrade funktioniert anders: Es unterstützt keine Upgrades nur für die Steuerungsebene und aktualisiert die Steuerungsebene und alle Knotenpools zusammen.

Kann ich Knotenpools vor der Steuerebene aktualisieren?

Nein. Die Steuerebenenversion muss immer gleich oder größer sein als jede Knotenpoolversion. Sie müssen zuerst die Steuerebene aktualisieren.

Wie lange dauert ein Upgrade eines Steuerflugzeugs?

Die Upgradedauer variiert je nach Clusterstatus und Azure Bedingungen. Überwachen provisioningState mit az aks show oder Get-AzAksCluster. Das Upgrade ist abgeschlossen, wenn der Bereitstellungsstatus ist Succeeded.

Beheben von Problemen mit dem Upgrade der Steuerebene

Keine Upgrades verfügbar

Verwenden Sie az aks get-upgrades für einen nicht unterstützten Cluster, um zu überprüfen, ob AKS ein berechtigtes unterstütztes Ziel bietet. Wenn ein Ziel verfügbar ist, führen Sie ein vollständiges Clusterupgrade aus. Nur-Steuerungsupgrades werden für diesen Wiederherstellungspfad nicht unterstützt.

Wenn kein Ziel verfügbar ist, befindet sich Ihr Cluster möglicherweise bereits auf der neuesten unterstützten Version. Wenn der Cluster eine nicht unterstützte Version ausführt, erstellen Sie einen neuen Cluster mit einer unterstützten Version, und migrieren Sie Ihre Workloads.

Fehler beim Upgrade aufgrund veralteter APIs

Überprüfen Sie vor dem Upgrade auf veraltete APIs mithilfe von Tools wie kube-no-trouble (kubent):

kubent

Der Befehl durchsucht Ressourcen, auf die über den aktuellen Kubeconfig-Kontext zugegriffen werden kann, nach veralteten Kubernetes-API-Versionen. Die Ausgabe gruppiert Ergebnisse von Kubernetes-Version und identifiziert jede betroffene Ressource durch KIND, NAMESPACE, , NAMEund API_VERSION. Aktualisieren Sie das Quellmanifest für jede aufgelistete Ressource, um vor dem Upgrade eine unterstützte API-Version zu verwenden.