Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment activer ou désactiver l’approvisionnement automatique de nœud dans Azure Kubernetes Service (AKS) à l’aide des modèles Azure CLI ou Azure Resource Manager (ARM).
Si vous souhaitez créer un cluster AKS compatible NAP avec un réseau virtuel personnalisé (VNet) et des sous-réseaux, consultez Créer un cluster d’approvisionnement automatique de nœud (NAP) dans un réseau virtuel personnalisé.
Avant de commencer
Avant de commencer, consultez la vue d’ensemble de l’approvisionnement automatique de nœud (NAP) dans l’article AKS , qui détaille le fonctionnement de NAP, les prérequis et les limitations.
Activer l’approvisionnement automatique de nœud (NAP) sur un cluster AKS
Les sections suivantes expliquent comment activer NAP sur un cluster AKS nouveau ou existant :
Note
Vous pouvez activer les métriques du plan de contrôle pour afficher les journaux et les opérations du provisionnement automatique des nœuds avec le module complémentaire Azure Monitor Managed Service pour Prometheus.
Activer NAP sur un nouveau cluster
Activez l'approvisionnement automatique de nœuds sur un nouveau cluster à l'aide de la commande
az aks createavec le paramètre--node-provisioning-modedéfini surAuto. La commande suivante définit également--network-pluginàazure,--network-plugin-modeàoverlay, et--network-dataplaneàcilium.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Auto \ --network-plugin azure \ --network-plugin-mode overlay \ --network-dataplane cilium \ --generate-ssh-keys
Créez un fichier nommé
nap.jsonet ajoutez la configuration de modèle ARM suivante, en définissant le champproperties.nodeProvisioningProfile.modesurAuto, ce qui active NAP. (Le paramètre par défaut estManual.){ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Auto" } } } ] }Activez l'auto-approvisionnement de nœud sur un nouveau cluster en utilisant la commande
az deployment group createavec l’indicateur--template-filedéfini sur le chemin du fichier de modèle ARM.az deployment group create --resource-group $RESOURCE_GROUP --template-file ./nap.json
Activer NAP sur un cluster existant
Activez l'autoprovisionnement de nœuds sur un cluster existant à l'aide de la commande
az aks updateavec l'indicateur--node-provisioning-modedéfini surAuto.az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto
Désactiver l’approvisionnement automatique de nœud (NAP) sur un cluster AKS
Important
Vous pouvez uniquement désactiver NAP sur un cluster si les conditions suivantes sont remplies :
- Il n’existe aucun nœud NAP existant. Vous pouvez utiliser la
kubectl get nodes -l karpenter.sh/nodepoolcommande pour rechercher les nœuds gérés par NAP existants. - Tous les Karpenter
NodePoolsexistants ont leur champspec.limits.cpudéfini sur0. Cette action empêche la création de nouveaux nœuds, mais n’interrompt pas les nœuds en cours d’exécution.
Définissez le
spec.limits.cpuchamp sur0pour chaque KarpenterNodePoolexistant. Par exemple:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: limits: cpu: 0Important
Si vous ne souhaitez pas vous assurer que chaque pod en cours d’exécution sur un nœud NAP est migré en toute sécurité vers un nœud non NAP avant de désactiver NAP, vous pouvez ignorer les étapes 2 et 3 et utiliser plutôt la
kubectl delete nodecommande pour chaque nœud géré par NAP. Toutefois, nous ne recommandons pas ignorer ces étapes, car cela pourrait laisser certains pods en attente et ne respecterait pas les budgets de perturbation des pods (PDB).Lorsque vous utilisez la
kubectl delete nodecommande, veillez à supprimer uniquement les nœuds gérés par NAP. Vous pouvez identifier les nœuds gérés par NAP à l’aide de lakubectl get nodes -l karpenter.sh/nodepoolcommande.Ajoutez la teinte
karpenter.azure.com/disable:NoScheduleà chaque KarpenterNodePool. Par exemple:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: template: spec: ... taints: - key: karpenter.azure.com/disable effect: NoScheduleCette action démarre le processus de migration des charges de travail sur les nœuds gérés par NAP vers des nœuds non NAP, en respectant les limites de PDB et d’interruption. Les pods migrent vers des nœuds non NAP s'ils peuvent s'adapter. S'il n'y a pas suffisamment de capacité à taille fixe, certains nœuds gérés par NAP persistent.
Effectuez une mise à l'échelle de taille fixe existante
ManagedClusterAgentPoolsou créez une nouvelle taille fixeAgentPoolspour supporter la charge des nœuds gérés par NAP. À mesure que ces nœuds sont ajoutés au cluster, les nœuds gérés par NAP sont vidés et le travail est migré vers les nœuds de taille fixe.Supprimez tous les nœuds gérés par NAP à l’aide de la
kubectl get nodes -l karpenter.sh/nodepoolcommande. Si des nœuds gérés par NAP existent toujours, le cluster manque probablement de capacité de taille fixe. Dans ce cas, vous devez ajouter d’autres nœuds afin que les charges de travail restantes puissent être migrées.
Mettez à jour le mode NAP à
Manualà l’aide de la commande Azure CLIaz aks updateavec le drapeau--node-provisioning-modedéfini surManual.az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Manual
Mettez à jour le champ
properties.nodeProvisioningProfile.modeenManualdans votre modèle ARM et redéployez-le.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Manual" } } } ] }
Étapes suivantes
Pour plus d’informations sur le provisionnement automatique de nœuds dans AKS, consultez les articles suivants :
- Utiliser le provisionnement automatique de nœuds dans un réseau virtuel personnalisé
- Configurer la mise en réseau pour l’approvisionnement automatique de nœuds sur AKS
- Configurer des pools de nœuds pour l’approvisionnement automatique de nœuds sur AKS
- Configurer des stratégies d’interruption pour l’approvisionnement automatique de nœud sur AKS
- Mettre à jour les images de nœuds pour l’approvisionnement automatique de nœuds sur AKS