Konfigurera nodstörningar i Azure Kubernetes Service (AKS) (förhandsversion)

Den här artikeln visar hur du konfigurerar och hanterar Node Disruption Policy för att styra när åtgärder som kräver omavbildning av noder och utlöser omdistribuering av noder tillåts i ditt Azure Kubernetes Service-kluster (AKS).

Förutsättningar

Important

AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

Installera tillägget aks-preview Azure CLI

  1. aks-preview Installera tillägget med kommandot az extension add .

    az extension add --name aks-preview
    
  2. Uppdatera till den senaste versionen av tillägget med kommandot az extension update .

    az extension update --name aks-preview
    

Registrera förhandsgranskningsfunktionen för nodstörningsprincip

Registrera förhandsversionen av nodstörningsprincipen med hjälp av az feature register kommandot .

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

Det tar några minuter innan statusen visas som Registrerad.

Konfigurera nodavbrottsprincip i ett nytt kluster

Skapa ett nytt AKS-kluster med Nodavbrottsprincip konfigurerad med kommandot az aks create med parametern --node-disruption-policy inställd på någon av följande principkonfigurationer: Allow (standard), eller .AllowDuringMaintenanceWindowBlock

Tillåt störande åtgärder när som helst (standard)

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

Tillåt endast störande åtgärder under underhållsperioder

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

Important

När du använder AllowDuringMaintenanceWindow, se till att du konfigurerar ett aksManagedNodeOSUpgradeSchedule underhållsfönster. Annars tillåts störande åtgärder på obestämd tid. Mer information finns i Använda planerat underhåll för att schemalägga och kontrollera uppgraderingar för ditt Azure Kubernetes Service kluster.

Blockera alla störande åtgärder

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

Uppdatera nodavbrottsprincip i ett befintligt kluster

Uppdatera nodavbrottsprincipen i ett befintligt AKS-kluster med kommandot az aks update med parametern --node-disruption-policy inställd på någon av följande principkonfigurationer: Allow (standard), AllowDuringMaintenanceWindoweller Block.

Ändra princip för att tillåta åtgärder under underhållsperioder

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

Ändra princip för att blockera alla störande åtgärder

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

Ändra tillbaka principen för att tillåta åtgärder när som helst

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

Kontrollera konfigurationen för principen för nodstörningar

Verifiera konfigurationen för Node Disruption Policy med kommandot az aks show.

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

Utdata visar den aktuella principinställningen, till exempel Allow, AllowDuringMaintenanceWindoweller Block.

Hantera blockerade åtgärder

När nodavbrottsprincipen blockerar en störande åtgärd kan du vänta till underhållsfönstret eller tillfälligt ändra principen.

Vänta till underhållsfönstret

Om du använder AllowDuringMaintenanceWindowschemalägger du åtgärden så att den utförs under nästa underhållsfönster. Du kan visa dina konfigurerade underhållsfönster med kommandot az aks maintenanceconfiguration list.

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

Ändra principen tillfälligt

  1. Uppdatera principen till Allow med kommandot az aks update med --node-disruption-policy inställt på Allow.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Allow
    
  2. Utför din störningsoperation. I följande exempel uppdateras de anpassade CA-certifikaten az aks update med hjälp av kommandot :

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates <path-to-certificate-file>
    
  3. Återställ den ursprungliga policyn genom att använda kommandot az aks update. Följande exempel återställer --node-disruption-policy till Block:

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

Åtgärder som kräver manuell uppgradering av nodpool

Vissa åtgärder som Node Disruption Policy inte styr kräver en manuell uppgradering av nodpoolen efter eventuella konfigurationsändringar. Dessa åtgärder omfattar följande:

  • SSH-konfigurationsändringar, till exempel ändring av SSH-åtkomstmetoder eller uppdatering av offentliga SSH-nycklar.
  • Ändringar av IMDS-begränsningar, till exempel aktivering eller inaktivering av IMDS-begränsning.
  • Ändringar av ACR-namn för bootstrap-profil för nätverksisolerade kluster.
  • Ändringar av utgående typ, till exempel ändring av utgående routning för kluster.

För dessa åtgärder måste du köra az aks nodepool upgrade kommandot manuellt när du har gjort konfigurationsändringen. Ett exempel:

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

Mer information om åtgärder som omfattas av nodstörningar finns i översikten över nodstörningar.

Felsöka problem med Node Disruption Policy

Åtgärden blockerades oväntat

Om en åtgärd oväntat blockeras använder du följande steg för att felsöka problemet:

  1. Kontrollera den aktuella principinställningen az aks show med hjälp av kommandot .

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
        --output tsv
    
  2. Om du använder AllowDuringMaintenanceWindow, kontrollera konfigurationen för underhållsfönstret med kommandot az aks maintenanceconfiguration show.

    az aks maintenanceconfiguration show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name aksManagedNodeOSUpgradeSchedule
    
  3. Kontrollera om den aktuella tiden ligger inom underhållsfönstret.

Inget underhållsfönster har konfigurerats

Om du anger principen till AllowDuringMaintenanceWindow men inte konfigurerar ett underhållsfönster tillåts alla störande åtgärder.

Konfigurera ett underhållsfönster med hjälp av kommandot az aks maintenanceconfiguration add.

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