Placement automatique de zone dans Azure Kubernetes Service (préversion)

L’emplacement automatique des zones dans Azure Kubernetes Service (AKS) sélectionne dynamiquement le meilleur ensemble de zones de disponibilité pour un pool de nœuds. Vous n’avez pas besoin de spécifier manuellement les zones pour chaque combinaison de région et de référence SKU de machine virtuelle. Lorsque vous créez ou mettez à jour un pool de nœuds avec --zones auto, AKS place des machines virtuelles dans des zones de disponibilité qui ont la capacité de la référence SKU demandée dans la région cible et applique un pourcentage d’instance maximal de 50% par zone.

Cet article vous montre comment créer ou mettre à jour des pools de nœuds AKS qui utilisent l’emplacement automatique des zones.

Fonctionnement de l’emplacement automatique des zones

Lorsque vous spécifiez --zones auto (ou availabilityZones: ["auto"] dans le profil du pool d’agents), AKS utilise la stratégie de placement automatique de zone de calcul Azure pour sélectionner des zones et distribuer des nœuds. Vous n’avez pas besoin de spécifier des numéros de zone ou de gérer différentes configurations de zone pour chaque région et référence SKU de machine virtuelle.

L’emplacement automatique des zones fonctionne comme suit :

  1. AKS évalue les zones de disponibilité dans la région cible qui peuvent prendre en charge la référence SKU de machine virtuelle demandée.
  2. AKS sélectionne initialement jusqu’à trois zones disponibles et place les nœuds en fonction de la stratégie de placement automatique des zones. Par défaut, aucune zone unique ne peut contenir plus de 50% du pool de nœuds.
  3. Pendant les opérations de scale-out ultérieures, AKS réévalue la disponibilité de la zone. Si Azure ajoute une zone à la région ou rend la référence SKU de machine virtuelle disponible dans une autre zone, AKS peut placer de nouveaux nœuds dans cette zone lorsque la stratégie de placement et la capacité disponible l’autorisent. Vous n’avez pas besoin de mettre à jour la configuration du pool de nœuds.

Important

La limite de 50% est une concentration maximale par zone, et non une garantie que les nœuds sont toujours distribués de façon égale. La distribution réelle dépend du nombre de nœuds, des zones qui prennent en charge la référence SKU de machine virtuelle sélectionnée et de la capacité disponible lorsque les nœuds sont provisionnés. Une opération de création ou d'échelle peut toujours échouer si Azure ne peut pas allouer les nœuds demandés lors de l'respect de la limite par zone.

Cette approche traite des points de douleur courants avec la spécification manuelle des zones :

  • Déploiements indépendants de la région : utilisez des configurations cohérentes entre les régions sans vous soucier des différences de disponibilité des zones.
  • Résilience améliorée : obtenez automatiquement une redondance multizone pour une meilleure disponibilité des applications.
  • Expansion automatique des zones : tirez parti de nouvelles zones de disponibilité en toute transparence lorsque les régions s’étendent (par exemple, de trois à quatre zones).
  • Réduction des échecs de déploiement : réduisez les échecs de création et d’allocation lors de la mise à l’échelle dus à des contraintes de capacité dans une zone donnée, en fonction du niveau d’équilibrage entre zones que votre charge de travail peut tolérer.

Limitations et considérations

  • L’emplacement automatique des zones prend en charge la création et la mise à jour des pools de nœuds basés sur Virtual Machine Scale Sets et Machines Virtuelles.
  • La limite par défaut par zone est de 50% de nœuds.
  • Le placement automatique des zones est destiné aux charges de travail s’étendant sur plusieurs zones. Pour les charges de travail alignées sur une zone (où chaque pool de nœuds est associé à une seule zone), continuez de spécifier explicitement la zone en utilisant --zones 1, --zones 2, etc.

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 :

  • Version 2026-01-02-preview de l’API AKS ou ultérieure.

  • La dernière version de l’extension Azure CLI aks-preview.

  • Région qui prend en charge les zones de disponibilité. Pour plus d’informations, consultez la liste des régions Azure.

  • L’indicateur de fonctionnalité VmssAutomaticZonePlacement inscrit dans votre abonnement. Inscrivez l’indicateur de fonctionnalité à l’aide de la az feature register commande :

    az feature register \
      --namespace Microsoft.Compute \
      --name VmssAutomaticZonePlacement
    

    Vérifiez l’état de l’inscription à l’aide de la az feature show commande :

    az feature show \
      --namespace Microsoft.Compute \
      --name VmssAutomaticZonePlacement \
      --query properties.state \
      --output tsv
    

    Attendez que la commande retourne Registered avant de continuer.

Créer un cluster AKS avec placement automatique de zone (version préliminaire)

Créez un cluster AKS avec un pool de nœuds système basé sur des Virtual Machine Scale Sets ou des Machines Virtuelles, qui utilise le placement automatique de zones à l’aide de la commande az aks create avec --zones auto :

az aks create \
  --resource-group example-rg \
  --name example-cluster \
  --node-vm-size Standard_D8s_v5 \
  --node-count 10 \
  --zones auto

AKS sélectionne les zones disposant d’une capacité pour Standard_D8s_v5 dans la région cible et y répartit les 10 nœuds, sans qu’aucune zone ne contienne plus de 50 % des nœuds.

Ajouter un pool de nœuds avec placement automatique de zone (version préliminaire)

Ajoutez un nouveau pool de nœuds basé sur des Virtual Machine Scale Sets ou des machines virtuelles à un cluster existant en utilisant la commande az aks nodepool add avec --zones auto :

az aks nodepool add \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name userpoolauto \
  --node-vm-size Standard_D8s_v5 \
  --node-count 6 \
  --zones auto

Mettre à jour un pool de nœuds existant pour utiliser l’attribution automatique des zones (version préliminaire)

Mettez à jour un pool de nœuds basé sur Virtual Machine Scale Sets ou sur Machines Virtuelles existant pour utiliser le placement automatique dans les zones à l’aide de la commande az aks nodepool update avec --zones auto:

az aks nodepool update \
  --resource-group example-rg \
  --cluster-name example-cluster \
  --name nodepool1 \
  --zones auto

AKS met à jour le pool de nœuds existant via une opération de remplacement progressif :

  1. AKS ajoute des nœuds de surtension qui utilisent le placement automatique de zones.
  2. AKS met hors service et vide les nœuds existants.
  3. AKS supprime les nœuds existants une fois que leurs charges de travail ont été déplacées vers les nœuds de surcapacité.

L’opération respecte les paramètres de mise à niveau suivants que vous configurez sur le pool de nœuds :

  • Augmentation maximale (--max-surge) : contrôle le nombre de nœuds supplémentaires ajoutés par AKS pendant la mise à jour. Une valeur plus élevée permet d’achever la mise à jour plus rapidement, mais nécessite un quota de calcul plus important et une capacité en adresses IP du sous-réseau plus élevée.
  • Délai d’expiration du drainage du nœud (--drain-timeout) : contrôle la durée pendant laquelle AKS attend l’éviction de pod sur un nœud avant l’échec de l’opération de drainage.
  • Durée de stabilisation des nœuds (--node-soak-duration) : contrôle le temps d’attente d’AKS après qu’un nouveau nœud passe à l’état Prêt avant de passer au lot suivant.

Avant de commencer la mise à jour, assurez-vous que vous disposez d’un quota de calcul suffisant et d’une capacité suffisante en adresses IP du sous-réseau pour les nœuds supplémentaires, et que vos budgets de perturbation des pods permettent le drainage des nœuds.

Vérifier l’emplacement de la zone

Après avoir créé ou mis à jour le cluster ou le pool de nœuds, vérifiez les zones sélectionnées par AKS à l’aide de la az aks show commande.

az aks show \
 --name example-cluster \
 --resource-group example-rg \
 --query agentPoolProfiles[].availabilityZones \
 --output tsv

Vous pouvez également utiliser kubectl pour confirmer la distribution des nœuds entre les zones.

kubectl get nodes -o custom-columns='NAME:metadata.name, REGION:metadata.labels.topology\.kubernetes\.io/region, ZONE:metadata.labels.topology\.kubernetes\.io/zone'

Exemple de sortie :

NAME                                REGION   ZONE
aks-nodepool1-12345678-vmss000000   eastus   eastus-1
aks-nodepool1-12345678-vmss000001   eastus   eastus-2
aks-nodepool1-12345678-vmss000002   eastus   eastus-3
...