Configurare i criteri di interruzione dei nodi in Servizio Azure Kubernetes (AKS) (anteprima)

Questo articolo illustra come configurare e gestire i criteri di interruzione dei nodi per controllare quando le operazioni che richiedono la ricreazione dell'immagine del nodo e la ridistribuzione dei nodi sono consentite nel cluster Servizio Azure Kubernetes (AKS).

Prerequisiti

Importante

Le funzionalità in anteprima di AKS sono disponibili in modalità self-service, su base volontaria. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime di AKS sono coperte solo parzialmente dall'assistenza clienti nei limiti del possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

Installare l'estensione aks-preview interfaccia della riga di comando di Azure

  1. Installare l'estensioneaks-preview usando il comando az extension add.

    az extension add --name aks-preview
    
  2. Eseguire l'aggiornamento alla versione più recente dell'estensione usando il comando az extension update.

    az extension update --name aks-preview
    

Registrare la funzionalità di anteprima dei criteri di interruzione dei nodi

Registrare la funzionalità di anteprima dei criteri di interruzione dei nodi usando il comando az feature register.

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

Servono alcuni minuti prima che lo stato venga visualizzato come Registrato.

Configurare i criteri di interruzione dei nodi in un nuovo cluster

Creare un nuovo cluster AKS con il criterio di interruzione dei nodi configurato usando il comando az aks create con il parametro --node-disruption-policy impostato su una delle configurazioni di criterio seguenti: Allow (impostazione predefinita), AllowDuringMaintenanceWindow o Block.

Consenti operazioni di interruzione in qualsiasi momento (impostazione predefinita)

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

Consenti operazioni di interruzione solo durante le finestre di manutenzione

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

Importante

Quando si usa AllowDuringMaintenanceWindow, assicurarsi di configurare una aksManagedNodeOSUpgradeSchedule finestra di manutenzione. In caso contrario, le operazioni di interruzione sono consentite per un periodo illimitato. Per altre informazioni, vedere Usare la manutenzione pianificata per pianificare e controllare gli aggiornamenti per il cluster servizio Azure Kubernetes.

Bloccare tutte le operazioni di interruzione

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

Aggiornare i criteri di interruzione dei nodi in un cluster esistente

Aggiornare il criterio di interruzione dei nodi in un cluster AKS esistente usando il comando az aks update con il parametro --node-disruption-policy impostato su una delle configurazioni di criterio seguenti: Allow (impostazione predefinita), AllowDuringMaintenanceWindow o Block.

Modificare i criteri per consentire le operazioni durante le finestre di manutenzione

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

Modificare i criteri per bloccare tutte le operazioni di interruzione

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

Modificare nuovamente i criteri per consentire le operazioni in qualsiasi momento

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

Verificare la configurazione dei criteri di interruzione dei nodi

Verificare la configurazione dei criteri di interruzione del nodo usando il az aks show comando .

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

L'output mostra l'impostazione corrente dei criteri, ad esempio Allow, AllowDuringMaintenanceWindowo Block.

Gestire le operazioni bloccate

Quando i criteri di interruzione del nodo bloccano un'operazione di interruzione, è possibile attendere la finestra di manutenzione o modificare temporaneamente il criterio.

Attendere la finestra di manutenzione

Se si usa AllowDuringMaintenanceWindow, pianificare l'operazione durante la finestra di manutenzione successiva. È possibile visualizzare le finestre di manutenzione configurate usando il az aks maintenanceconfiguration list comando .

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

Modificare temporaneamente il criterio

  1. Aggiornare il criterio su Allow usando il comando az aks update con --node-disruption-policy impostato su Allow.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Allow
    
  2. Esegui l'operazione di interruzione del servizio. L'esempio seguente aggiorna i certificati della CA personalizzati usando il az aks update comando :

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates <path-to-certificate-file>
    
  3. Ripristinare i criteri originali usando il az aks update comando . L'esempio seguente ripristina --node-disruption-policy in Block:

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

Operazioni che richiedono l'aggiornamento manuale del pool di nodi

Alcune operazioni che i criteri di interruzione del nodo non controllano richiedono un aggiornamento manuale del pool di nodi dopo le modifiche alla configurazione. tra cui:

  • Modifiche alla configurazione SSH, ad esempio la modifica dei metodi di accesso SSH o l'aggiornamento delle chiavi pubbliche SSH.
  • Modifiche alle restrizioni IMDS, ad esempio l'abilitazione o la disabilitazione della restrizione IMDS.
  • Modifiche al nome ACR del profilo di bootstrap per i cluster con isolamento di rete.
  • Modifiche al tipo di traffico in uscita, ad esempio la modifica del routing del traffico in uscita del cluster.

Per queste operazioni, è necessario eseguire manualmente il az aks nodepool upgrade comando dopo aver apportato la modifica della configurazione. Per esempio:

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

Per altre informazioni sulle operazioni coperte dai criteri di interruzione dei nodi, vedere Panoramica dei criteri di interruzione dei nodi.

Risolvere i problemi di Node Disruption Policy

Operazione bloccata in modo imprevisto

Se un'operazione viene bloccata in modo imprevisto, seguire questa procedura per risolvere il problema:

  1. Controllare l'impostazione dei criteri corrente usando il az aks show comando .

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
        --output tsv
    
  2. Se si usa AllowDuringMaintenanceWindow, verificare la configurazione della finestra di manutenzione usando il az aks maintenanceconfiguration show comando .

    az aks maintenanceconfiguration show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name aksManagedNodeOSUpgradeSchedule
    
  3. Controllare se l'ora corrente rientra nella finestra di manutenzione.

Nessuna finestra di manutenzione configurata

Se si impostano i criteri su AllowDuringMaintenanceWindow ma non si configura una finestra di manutenzione, tutte le operazioni di interruzione sono consentite.

Configurare una finestra di manutenzione usando il az aks maintenanceconfiguration add comando .

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