Konfigurowanie zasad zakłóceń dotyczących węzłów w usłudze Azure Kubernetes Service (AKS) (wersja zapoznawcza)

W tym artykule opisano, jak skonfigurować zasady Node Disruption Policy i zarządzać nimi, aby kontrolować, kiedy w klastrze Azure Kubernetes Service (AKS) są dozwolone operacje wymagające ponownego utworzenia obrazu węzła i powodujące jego ponowne wdrożenie.

Wymagania wstępne

Ważna

Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i wymagają zapisania się. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów, świadczoną w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:

Zainstaluj rozszerzenie Azure CLI aks-preview

  1. Zainstaluj rozszerzenie aks-preview przy użyciu polecenia az extension add.

    az extension add --name aks-preview
    
  2. Przeprowadź aktualizację do najnowszej wersji rozszerzenia przy użyciu az extension update polecenia .

    az extension update --name aks-preview
    

Zarejestruj funkcję zasad zakłóceń węzłów w wersji zapoznawczej

Zarejestruj funkcję wersji zapoznawczej Node Disruption Policy przy użyciu polecenia az feature register.

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

Wyświetlenie stanu jako Zarejestrowane trwa kilka minut.

Konfigurowanie zasad zakłóceń węzła w nowym klastrze

Utwórz nowy klaster usługi AKS z zasadą zakłóceń węzłów skonfigurowaną za pomocą polecenia az aks create z parametrem --node-disruption-policy ustawionym na jedną z następujących konfiguracji: Allow (ustawienie domyślne), AllowDuringMaintenanceWindow lub Block.

Zezwalaj na operacje powodujące zakłócenia w dowolnym momencie (ustawienie domyślne)

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

Zezwalaj na operacje powodujące zakłócenia tylko podczas okien konserwacyjnych

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

Ważna

Podczas korzystania z AllowDuringMaintenanceWindow, upewnij się, że skonfigurujesz okno konserwacji aksManagedNodeOSUpgradeSchedule. W przeciwnym razie operacje zakłócające są dozwolone na czas nieokreślony. Aby uzyskać więcej informacji, zobacz Planowanie i kontrolowanie uaktualnień klastra Azure Kubernetes Service za pomocą planowanej konserwacji.

Blokuj wszystkie operacje powodujące zakłócenia

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

Aktualizowanie zasady zakłóceń węzłów w istniejącym klastrze

Zaktualizuj zasady zakłócania działania węzłów w istniejącym klastrze AKS za pomocą polecenia az aks update z parametrem --node-disruption-policy ustawionym na jedną z następujących konfiguracji zasad: Allow (wartość domyślna), AllowDuringMaintenanceWindow lub Block.

Zmień zasady, aby zezwolić na operacje podczas okien konserwacji

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

Zmień zasady, aby blokować wszystkie operacje powodujące zakłócenia

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

Zmień zasady z powrotem, aby zezwolić na operacje w dowolnym momencie

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

Zweryfikuj konfigurację zasad przerywania działania węzłów

Sprawdź konfigurację zasad zakłóceń węzłów za pomocą polecenia az aks show.

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

Dane wyjściowe zawierają bieżące ustawienie zasad, takie jak Allow, AllowDuringMaintenanceWindowlub Block.

Obsługa zablokowanych operacji

Gdy zasada zakłóceń węzłów blokuje operację zakłócającą, możesz poczekać na okno serwisowe lub tymczasowo zmienić zasadę.

Poczekaj na okno konserwacyjne

Jeśli używasz AllowDuringMaintenanceWindow, zaplanuj wykonanie operacji podczas następnego okna konserwacyjnego. Skonfigurowane okna obsługi można wyświetlić przy użyciu az aks maintenanceconfiguration list polecenia .

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

Tymczasowo zmień zasady

  1. Zaktualizuj politykę do Allow, używając polecenia az aks update z parametrem --node-disruption-policy ustawionym na Allow.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Allow
    
  2. Wykonaj operację zakłócania działania. Poniższy przykład aktualizuje niestandardowe certyfikaty urzędu certyfikacji przy użyciu az aks update polecenia :

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates <path-to-certificate-file>
    
  3. Przywróć oryginalne zasady przy użyciu az aks update polecenia . Poniższy przykład przywraca element --node-disruption-policy do elementu Block:

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

Operacje wymagające ręcznego uaktualnienia puli węzłów na platformie Kubernetes w wersji 1.36 lub starszej

W systemie Kubernetes 1.37 lub nowszym zasady zakłóceń węzła obejmują następujące zmiany konfiguracji. Na platformie Kubernetes w wersji 1.36 lub starszej te zmiany wymagają ręcznego uaktualnienia puli węzłów:

  • Zmiany konfiguracji SSH, takie jak zmiana metod dostępu SSH lub aktualizowanie kluczy publicznych SSH.
  • Zmiany ograniczeń usługi IMDS, takie jak włączanie lub wyłączanie ograniczeń IMDS.
  • Zmiany nazwy profilu bootstrap ACR dla klastrów odizolowanych od sieci.
  • Zmiany typu ruchu wychodzącego, takie jak zmiana routingu ruchu wychodzącego klastra.

Na platformie Kubernetes 1.36 i starszych uruchom ręcznie az aks nodepool upgrade polecenie po wprowadzeniu zmiany konfiguracji. Przykład:

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

Aby uzyskać więcej informacji na temat operacji objętych zasadami zakłóceń węzła, zobacz Omówienie zasad zakłóceń węzła.

Rozwiązywanie problemów z zasadami zakłócania węzłów

Operacja zablokowana nieoczekiwanie

Jeśli operacja zostanie nieoczekiwanie zablokowana, wykonaj następujące kroki, aby rozwiązać problem:

  1. Sprawdź bieżące ustawienie zasad przy użyciu az aks show polecenia .

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
        --output tsv
    
  2. Jeśli używasz AllowDuringMaintenanceWindow, sprawdź konfigurację okna konserwacji za pomocą polecenia az aks maintenanceconfiguration show.

    az aks maintenanceconfiguration show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name aksManagedNodeOSUpgradeSchedule
    
  3. Sprawdź, czy aktualny czas mieści się w oknie konserwacyjnym.

Nie skonfigurowano okna konserwacji

Jeśli ustawisz zasadę na AllowDuringMaintenanceWindow, ale nie skonfigurujesz okna konserwacji, wszystkie operacje powodujące zakłócenia będą dozwolone.

Skonfiguruj okno obsługi przy użyciu az aks maintenanceconfiguration add polecenia .

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