Configurer la stratégie d’interruption de nœud dans Azure Kubernetes Service (AKS) (préversion)

Cet article explique comment configurer et gérer la stratégie de perturbation des nœuds afin de contrôler à quel moment les opérations qui nécessitent une réinitialisation de l’image d’un nœud et qui déclenchent le redéploiement du nœud sont autorisées dans votre cluster Azure Kubernetes Service (AKS).

Prerequisites

Important

Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions préliminaires sont fournies « en l’état » et « selon leur disponibilité » et ne sont pas couvertes par les accords de niveau de service ni par la garantie limitée. Les versions préliminaires d’AKS sont partiellement couvertes par le support client, dans la limite du raisonnable. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :

Installer l’extension aks-preview Azure CLI

  1. Installez l'extension aks-preview à l'aide de la commande az extension add.

    az extension add --name aks-preview
    
  2. Mettez à jour vers la dernière version de l’extension à l’aide de la commande az extension update.

    az extension update --name aks-preview
    

Inscrire la fonctionnalité d’évaluation de la stratégie d’interruption de nœud

Inscrivez la fonctionnalité d’aperçu de la stratégie d’interruption de nœud à l’aide de la az feature register commande.

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

Quelques minutes sont nécessaires pour que l’état s’affiche comme Registered (Inscrit).

Configurer la stratégie d’interruption de nœud sur un nouveau cluster

Créez un cluster AKS avec une stratégie de perturbation des nœuds configurée à l’aide de la commande az aks create, avec le paramètre --node-disruption-policy défini sur l’une des configurations de stratégie suivantes : Allow (par défaut), AllowDuringMaintenanceWindow, ou Block.

Autoriser les opérations perturbatrices à tout moment (valeur par défaut)

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

Autoriser les opérations perturbatrices uniquement pendant les fenêtres de maintenance

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

Important

Lorsque vous utilisez AllowDuringMaintenanceWindow, veillez à configurer une aksManagedNodeOSUpgradeSchedule fenêtre de maintenance. Sinon, les opérations perturbatrices sont autorisées indéfiniment. Pour plus d’informations, consultez Utiliser la maintenance planifiée pour planifier et contrôler les mises à niveau de votre cluster Azure Kubernetes Service.

Bloquer toutes les opérations perturbatrices

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

Mettre à jour la stratégie d’interruption de nœud sur un cluster existant

Mettez à jour la stratégie d’interruption de nœud sur un cluster AKS existant à l’aide de la az aks update commande avec le paramètre défini sur l’une --node-disruption-policy des configurations de stratégie suivantes : Allow (par défaut), AllowDuringMaintenanceWindowou Block.

Modifier la stratégie pour autoriser les opérations pendant les fenêtres de maintenance

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

Modifier la stratégie pour bloquer toutes les opérations perturbatrices

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

Rétablir la politique pour autoriser les opérations à tout moment

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

Vérifier la configuration de la stratégie d’interruption de nœud

Vérifiez la configuration de la stratégie d’interruption de nœud à l’aide de la az aks show commande.

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

La sortie affiche le paramètre de stratégie actuel, tel que Allow, AllowDuringMaintenanceWindowou Block.

Gérer les opérations bloquées

Lorsque la stratégie d’interruption de nœud bloque une opération de perturbation, vous pouvez attendre la fenêtre de maintenance ou modifier temporairement la stratégie.

Attendre la fenêtre de maintenance

Si vous utilisez AllowDuringMaintenanceWindow, planifiez l’opération pendant la fenêtre de maintenance suivante. Vous pouvez afficher vos fenêtres de maintenance configurées à l’aide de la az aks maintenanceconfiguration list commande.

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

Modifier temporairement la stratégie

  1. Mettez à jour la stratégie vers Allow à l’aide de la commande az aks update, avec --node-disruption-policy défini sur Allow.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-disruption-policy Allow
    
  2. Effectuez votre opération perturbatrice. L’exemple suivant met à jour les certificats d’autorité de certification personnalisés à l’aide de la az aks update commande :

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates <path-to-certificate-file>
    
  3. Restaurez la stratégie d’origine à l’aide de la az aks update commande. L’exemple suivant restaure --node-disruption-policy sur Block:

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

Opérations nécessitant une mise à niveau manuelle du pool de nœuds

Certaines opérations que la stratégie d’interruption de nœud ne contrôle pas nécessitent une mise à niveau manuelle du pool de nœuds après les modifications de configuration. Ces opérations comprennent :

  • Modifications de configuration SSH, telles que la modification des méthodes d’accès SSH ou la mise à jour des clés publiques SSH.
  • Modifications de restriction IMDS, telles que l’activation ou la désactivation de la restriction IMDS.
  • Modifications du nom ACR du profil d’amorçage pour les clusters isolés du réseau.
  • Modifications du type de trafic sortant, telles que la modification du routage du trafic sortant du cluster.

Pour ces opérations, vous devez exécuter manuellement la az aks nodepool upgrade commande après avoir apporté la modification de la configuration. Par exemple:

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

Pour plus d’informations sur les opérations couvertes par la stratégie d’interruption de nœud, consultez la vue d’ensemble de la stratégie d’interruption de nœud.

Résoudre les problèmes liés à la stratégie d’interruption des nœuds

Opération bloquée de manière inattendue

Si une opération est bloquée de façon inattendue, procédez comme suit pour résoudre le problème :

  1. Vérifiez le paramètre de stratégie actuel à l’aide de la az aks show commande.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query "nodeDisruptionProfile.nodeDisruptionPolicy" \
        --output tsv
    
  2. Si vous utilisez AllowDuringMaintenanceWindow, vérifiez la configuration de la fenêtre de maintenance à l’aide de la az aks maintenanceconfiguration show commande.

    az aks maintenanceconfiguration show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name aksManagedNodeOSUpgradeSchedule
    
  3. Vérifiez si l’heure actuelle se trouve dans la fenêtre de maintenance.

Aucune fenêtre de maintenance configurée

Si vous définissez la stratégie sur AllowDuringMaintenanceWindow mais que vous ne configurez pas de fenêtre de maintenance, toutes les opérations perturbatrices sont autorisées.

Configurez une fenêtre de maintenance à l’aide de la az aks maintenanceconfiguration add commande.

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