Konfigurieren der Richtlinie für Knotenunterbrechungen in Azure Kubernetes Service (AKS) (Vorschau)

In diesem Artikel erfahren Sie, wie Sie die Richtlinie für Knotenunterbrechungen konfigurieren und verwalten, um zu steuern, wann Vorgänge, die ein Neuimaging von Knoten erfordern und eine erneute Bereitstellung von Knoten auslösen, in Ihrem Azure Kubernetes Service (AKS)-Cluster zulässig sind.

Voraussetzungen

Important

AKS-Preview-Funktionen stehen auf Selbstbedienungs- und Opt-in-Basis zur Verfügung. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:

Installieren Sie die aks-preview Azure CLI-Erweiterung

  1. Installieren Sie die „aks-preview“-Erweiterung mithilfe des Befehls „az extension add“.

    az extension add --name aks-preview
    
  2. Führen Sie mit dem Befehl az extension update ein Update auf die neueste Version der Erweiterung aus.

    az extension update --name aks-preview
    

Registrieren Sie die Vorschaufunktion für Node Disruption Policy

Registrieren Sie die Vorschaufunktion „Node Disruption Policy“ mit dem Befehl az feature register.

az feature register --namespace "Microsoft. ContainerService" --name "NodeDisruptionProfile"

Es dauert ein paar Minuten, bis der Status als registriert angezeigt wird.

Konfigurieren der Knotenunterbrechungsrichtlinie für einen neuen Cluster

Erstellen Sie einen neuen AKS-Cluster, bei dem die Richtlinie für Knotenunterbrechungen mithilfe des Befehls az aks create konfiguriert wird, wobei der Parameter --node-disruption-policy auf eine der folgenden Richtlinienkonfigurationen festgelegt ist: Allow (Standard), AllowDuringMaintenanceWindow oder Block.

Unterbrechungsvorgänge jederzeit zulassen (Standard)

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --node-disruption-policy Allow \
    --generate-ssh-keys

Unterbrechungsvorgänge nur während Wartungsfenstern zulassen

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --node-disruption-policy AllowDuringMaintenanceWindow \
    --generate-ssh-keys

Important

Stellen Sie bei Verwendung AllowDuringMaintenanceWindowsicher, dass Sie ein aksManagedNodeOSUpgradeSchedule Wartungsfenster konfigurieren. Andernfalls sind störende Operationen unbegrenzt zulässig. Weitere Informationen finden Sie unter Verwenden der geplanten Wartung zum Planen und Steuern von Upgrades für Ihren Azure Kubernetes Service Cluster.

Blockieren aller störenden Vorgänge

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 3 \
    --node-disruption-policy Block \
    --generate-ssh-keys

Aktualisieren der Knotenunterbrechungsrichtlinie für einen vorhandenen Cluster

Aktualisieren Sie die Richtlinie für Knotenunterbrechungen in einem vorhandenen AKS-Cluster, indem Sie den Befehl az aks update mit dem Parameter --node-disruption-policy verwenden, der auf eine der folgenden Richtlinienkonfigurationen festgelegt wird: Allow (Standard), AllowDuringMaintenanceWindow oder Block.

Richtlinie ändern, um Vorgänge während Wartungsfenstern zuzulassen

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-disruption-policy AllowDuringMaintenanceWindow

Ändern der Richtlinie zum Blockieren aller störenden Vorgänge

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-disruption-policy Block

Richtlinie wieder so ändern, dass Vorgänge jederzeit zugelassen werden

az aks update \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-disruption-policy Allow

Überprüfen der Konfiguration der Knotenunterbrechungsrichtlinie

Überprüfen Sie die Konfiguration der Knotenunterbrechungsrichtlinie mithilfe des az aks show Befehls.

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
    --output tsv

Die Ausgabe zeigt die aktuelle Richtlinieneinstellung, z. B. Allow, AllowDuringMaintenanceWindow oder Block.

Behandeln blockierter Vorgänge

Wenn die Richtlinie für Knotenunterbrechungen einen störenden Vorgang blockiert, können Sie auf das Wartungsfenster warten oder die Richtlinie vorübergehend ändern.

Warten auf das Wartungsfenster

Wenn Sie AllowDuringMaintenanceWindow verwenden, planen Sie den Vorgang für das nächste Wartungsfenster. Sie können Ihre konfigurierten Wartungsfenster mithilfe des az aks maintenanceconfiguration list Befehls anzeigen.

az aks maintenanceconfiguration list \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster

Ändern Sie die Richtlinie vorübergehend.

  1. Aktualisieren Sie die Richtlinie auf Allow, indem Sie den Befehl az aks update verwenden und --node-disruption-policy auf Allow festlegen.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Allow
    
  2. Führen Sie Ihre disruptive Operation aus. Im folgenden Beispiel werden die benutzerdefinierten Zertifizierungsstellenzertifikate mithilfe des az aks update Befehls aktualisiert:

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates <path-to-certificate-file>
    
  3. Stellen Sie die ursprüngliche Richtlinie mithilfe des az aks update Befehls wieder her. Im folgenden Beispiel wird --node-disruption-policy in Block wiederhergestellt:

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Block
    

Vorgänge, für die ein manuelles Upgrade des Knotenpools erforderlich ist

Einige Vorgänge, die von der Richtlinie für Node-Unterbrechungen nicht gesteuert werden, erfordern nach jeglichen Konfigurationsänderungen ein manuelles Upgrade des Knotenpools. Dazu zählen die Operationen:

  • SSH-Konfigurationsänderungen, z. B. Ändern von SSH-Zugriffsmethoden oder Aktualisieren öffentlicher SSH-Schlüssel.
  • IMDS-Einschränkungsänderungen, z. B. Aktivieren oder Deaktivieren der IMDS-Einschränkung.
  • Bootstrap-Profil-ACR-Namenänderungen für isolierte Netzwerkcluster.
  • Änderungen des ausgehenden Typs, z. B. Ändern des Clusterausgangsroutings.

Für diese Vorgänge müssen Sie den az aks nodepool upgrade Befehl manuell ausführen, nachdem die Konfigurationsänderung vorgenommen wurde. Beispiel:

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

Weitere Informationen zu Vorgängen, die von der Node-Unterbrechungsrichtlinie abgedeckt werden, finden Sie in der Übersicht über die Knotenunterbrechungsrichtlinie.

Probleme mit der Node Disruption Policy beheben

Vorgang unerwartet blockiert

Wenn ein Vorgang unerwartet blockiert wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben:

  1. Überprüfen Sie die aktuelle Richtlinieneinstellung mithilfe des az aks show Befehls.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
        --output tsv
    
  2. Wenn Sie AllowDuringMaintenanceWindow verwenden, überprüfen Sie die Konfiguration des Wartungsfensters mit dem Befehl az aks maintenanceconfiguration show.

    az aks maintenanceconfiguration show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name aksManagedNodeOSUpgradeSchedule
    
  3. Überprüfen Sie, ob die aktuelle Uhrzeit im Wartungsfenster liegt.

Kein Wartungsfenster konfiguriert

Wenn Sie die Richtlinie auf AllowDuringMaintenanceWindow festlegen, aber kein Wartungsfenster konfigurieren, sind alle störenden Vorgänge zulässig.

Konfigurieren Sie ein Wartungsfenster mithilfe des az aks maintenanceconfiguration add Befehls.

az aks maintenanceconfiguration add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name aksManagedNodeOSUpgradeSchedule \
    --schedule-type Weekly \
    --day-of-week Sunday \
    --interval-weeks 1 \
    --duration 4 \
    --start-hour 2