Gérer les pools de nœuds système dans Azure Kubernetes Service (AKS)

Dans Azure Kubernetes Service (AKS), les nœuds de la même configuration sont regroupés en pools nodes. Les pools de nœuds contiennent les machines virtuelles sous-jacentes qui exécutent vos applications. Les pools de nœuds système et les pools de nœuds utilisateur sont deux modes de pool de nœuds différents pour vos clusters AKS. Cet article montre comment gérer les pools de nœuds système dans AKS. Pour plus d’informations sur l’utilisation de plusieurs pools de nœuds, consultez créer des pools de nœuds.

  • Pools de nœuds système : l’objectif principal est d’héberger des pods système critiques tels que CoreDNS et metrics-server. Les pools de nœuds système ne doivent pas être utilisés pour exécuter votre application. Les pools de nœuds système utilisent Ubuntu Linux ou Azure Linux.
  • Pools de nœuds utilisateur : l’objectif principal est d’héberger vos pods d’application et d’isoler les applications du pool de nœuds système. Cette isolation empêche une application d’entraîner une instabilité avec le pool de nœuds système de votre cluster. Les pools de nœuds utilisateur peuvent utiliser Ubuntu Linux, Azure Linux ou Windows.

Un cluster AKS de production avec un pool de nœuds système unique doit contenir au moins deux nœuds. La recommandation pour un cluster AKS de production avec un pool de nœuds système unique consiste à avoir au moins trois nœuds pour améliorer la tolérance de panne et les zones de disponibilité. Par exemple, le nombre de nœuds par défaut de la commande az aks create est de trois et crée un cluster avec un seul pool de nœuds système Linux et trois nœuds Linux.

Il est possible, mais pas recommandé, de planifier des pods d’application sur un pool de nœuds système si vous n’avez qu’un seul pool de nœuds dans votre cluster AKS. Une meilleure solution consiste à créer un pool de nœuds utilisateur pour votre application.

Avant de commencer

Vous avez besoin de la Azure CLI version 2.3.1 ou ultérieure installée et configurée. Pour connaître la version de l’interface, exécutez la commande az --version. Si vous devez installer ou mettre à niveau, consultez Installer Azure CLI.

Vous avez besoin de la Azure PowerShell version 7.5.0 ou ultérieure installée et configurée. Pour connaître la version de l’interface, exécutez la commande Get-InstalledModule -Name Az. Si vous devez installer ou mettre à niveau, consultez Installer Azure PowerShell.

Avant de commencer, vérifiez que les conditions préalables suivantes sont remplies :

  • Un abonnement Azure actif.
  • Terraform installé localement.
  • Azure CLI installé et connecté.
  • Autorisations pour créer et gérer des ressources AKS.

Définissez votre abonnement :

az account set --subscription <subscription-id>

Limites

Les limitations suivantes s’appliquent lorsque vous créez et gérez les clusters AKS prenant en charge les pools de nœuds système.

  • Consultez Quotas, restrictions sur la taille de machine virtuelle et disponibilité des régions dans AKS.
  • Une version d’API de version 2020-03-01 ou supérieure doit être utilisée pour définir un mode de pool de nœuds. Les clusters créés sur les versions d'API antérieures à 2020-03-01 ne contiennent que des pools de nœuds utilisateur, mais peuvent être migrés pour inclure des pools de nœuds système en suivant les étapes de mise à jour du mode de pool.
  • Le nom d’un pool de nœuds ne peut contenir que des caractères alphanumériques minuscules et doit commencer par une lettre minuscule. Pour les pools de nœuds Linux, la longueur doit être comprise entre 1 et 12 caractères. Pour les pools de nœuds Windows, la longueur doit être de un à six caractères.
  • Le mode d’un pool de nœuds est une propriété obligatoire qui doit être définie explicitement si vous utilisez des modèles ARM ou des appels d’API directs.

Pools de nœuds système et utilisateur

Pour un pool de nœuds système, AKS affecte automatiquement l’étiquette kubernetes.azure.com/mode: system à ses nœuds. C’est pourquoi AKS préfère planifier des pods du système sur les pools de nœuds qui portent cette étiquette. Cette étiquette ne vous empêche pas de planifier des pods d’application sur des pools de nœuds système. Mais nous vous recommandons d’isoler les pods système critiques de vos pods d’application pour empêcher les pods d’application mal configurés ou non configurés de supprimer accidentellement des pods système.

Vous pouvez appliquer ce comportement en créant un pool de nœuds système dédié. Utilisez la teinte CriticalAddonsOnly=true:NoSchedule pour empêcher la planification de pods d’application sur les pools de nœuds système.

Les pools de nœuds système présentent les restrictions suivantes :

  • Les pools de nœuds système doivent prendre en charge au moins 30 pods, comme le décrit la formule des valeurs minimale et maximale pour les pods.
  • Les pools du système osType doivent être sous Linux.
  • Les pools de nœuds utilisateur osType peuvent être Linux ou Windows.
  • Les pools système doivent contenir au moins deux nœuds, mais la recommandation est de trois nœuds. Les pools de nœuds utilisateur peuvent contenir zéro ou plusieurs nœuds.
  • Les pools de nœuds système nécessitent une référence SKU de machine virtuelle d’au moins 4 processeurs virtuels et 4 Go de mémoire.
  • Les machines virtuelles de série B ne sont pas prises en charge pour les pools de nœuds système.
  • Un minimum de trois nœuds à 8 processeurs virtuels ou deux nœuds à au moins 16 processeurs virtuels est recommandé (par exemple, Standard_DS4_v2), en particulier pour les clusters de grande taille (plusieurs réplicas de pod CoreDNS, 3 à 4 modules complémentaires, etc.).
  • Les pools de nœuds Spot nécessitent des pools de nœuds utilisateur.
  • L'ajout d'un autre pool de nœuds système ou la modification du pool de nœuds qui est un pool de nœuds système ne déplace pas automatiquement les pods système. Les pods système peuvent continuer à s’exécuter sur le même pool de nœuds, même si vous le transformez en pool de nœuds utilisateur. Si vous supprimez ou réduisez la taille d’un pool de nœuds exécutant des pods système qui correspondaient à un pool de nœuds système, ces pods système sont redéployés avec la planification préférée vers le nouveau pool de nœuds système.

Vous pouvez effectuer les opérations suivantes avec des pools de nœuds :

  • Créer un pool de nœuds système dédié (préférer la planification de pods système aux pools de nœuds de mode:system)
  • Modifiez un pool de nœuds système en pool de nœuds utilisateur, à condition de disposer d’un autre pool de nœuds système pour prendre sa place dans le cluster AKS.
  • Modifiez un pool de nœuds utilisateur en pool de nœuds système.
  • Supprimez les pools de nœuds utilisateur.
  • Vous pouvez supprimer un pool de nœuds système à condition de disposer d’un autre pool de nœuds système pour prendre sa place dans le cluster AKS.
  • Un cluster AKS peut avoir plusieurs pools de nœuds système et nécessite au moins un pool de nœuds système.
  • Si vous souhaitez modifier différents paramètres immuables sur des pools de nœuds existants, vous pouvez créer de nouveaux pools de nœuds pour les remplacer. Un exemple consiste à ajouter un nouveau pool de nœuds avec un nouveau maxPods paramètre et à supprimer l’ancien pool de nœuds.
  • Utiliser l’affinité de nœud pour exiger ou préférer les nœuds pouvant être planifiés en fonction des étiquettes de nœud. Vous pouvez définir key sur kubernetes.azure.com, operator sur In et values sur user ou system dans votre code YAML et appliquer cette définition avec kubectl apply -f yourYAML.yaml.

Créer un cluster AKS avec un pool de nœuds système

Lorsque vous créez un cluster AKS, le pool de nœuds initial est défini par défaut sur un mode de type System. Lorsque vous créez des pools de nœuds avec az aks nodepool add, ces pools de nœuds sont des pools de nœuds utilisateur, sauf si vous spécifiez explicitement le paramètre mode.

Créez des variables pour le groupe de ressources, le nom du cluster et l’emplacement des commandes utilisées dans cet article. Cet article spécifie des valeurs ou vous pouvez utiliser vos propres valeurs.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myAKSCluster"
export LOCATION="eastus"
export NEW_SYSTEM_NP="systempool"
export NEW_NODE_POOL="mynodepool"

L'exemple suivant crée un groupe de ressources nommé myResourceGroup dans la région eastus.

az group create --name $RESOURCE_GROUP --location $LOCATION

Utilisez la commande az aks create pour créer un cluster AKS. L’exemple suivant crée un cluster nommé myAKSCluster avec un pool système dédié contenant deux nœuds. Pour vos charges de travail de production, assurez-vous d’utiliser des pools de nœuds système avec au moins trois nœuds. Cette opération prend plusieurs minutes.

az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-count 2 --generate-ssh-keys

Lorsque vous créez un cluster AKS, le pool de nœuds initial est défini par défaut sur un mode de type system. Lorsque vous créez de nouveaux pools de nœuds avec New-AzAksNodePool, ces pools de nœuds sont des pools de nœuds utilisateur. Le mode d’un pool de nœuds peut être mis à jour à tout moment.

Créez des variables pour le groupe de ressources, le nom du cluster et l’emplacement des commandes utilisées dans cet article. Cet article spécifie des valeurs ou vous pouvez utiliser vos propres valeurs.

$ResourceGroup="myResourceGroup"
$ClusterName="myAKSCluster"
$Location="eastus"
$NewSystemNP="systempool"
$NewNodePool="mynodepool"

L'exemple suivant crée un groupe de ressources nommé myResourceGroup dans la région eastus.

New-AzResourceGroup -ResourceGroupName $ResourceGroup -Location $Location

Utilisez l’applet de commande New-AzAksCluster pour créer un cluster AKS. L’exemple suivant crée un cluster nommé myAKSCluster avec un pool système dédié contenant deux nœuds. Pour vos charges de travail de production, assurez-vous d’utiliser des pools de nœuds système avec au moins trois nœuds. L’opération prend plusieurs minutes.

New-AzAksCluster -ResourceGroupName $ResourceGroup -Name $ClusterName -NodeCount 2 -GenerateSshKey

Utilisez la configuration Terraform suivante pour créer un cluster AKS avec un pool de nœuds système.

Créer le fichier de configuration Terraform

Créez un fichier nommé main.tfet ajoutez la configuration partagée suivante :

terraform {
 required_version = ">= 1.0"
 required_providers {
   azurerm = {
     source  = "hashicorp/azurerm"
     version = "~> 4.0"
   }
 }
}
provider "azurerm" {
 features {}
}

Créer un groupe de ressources

Ajoutez la configuration de groupe de ressources suivante :

resource "azurerm_resource_group" "rg" {
 name     = "aks-system-pool-rg"
 location = "East US"
}

Un groupe de ressources est utilisé pour organiser et gérer des ressources Azure.

Créer un cluster AKS

Ajoutez la configuration suivante pour créer un cluster AKS. Le pool de nœuds initial est créé en tant que pool de nœuds système et est requis pour l’opération de cluster.

resource "azurerm_kubernetes_cluster" "aks" {
 name                = "aks-system-pool-cluster"
 location            = azurerm_resource_group.rg.location
 resource_group_name = azurerm_resource_group.rg.name
 dns_prefix          = "akssystempool"
 default_node_pool {
   name                = "systemnp"
   vm_size             = "Standard_D4s_v5"
   node_count          = 2
   min_count           = 2
   max_count           = 3
   max_pods            = 30
   enable_auto_scaling = true
 }
 identity {
   type = "SystemAssigned"
 }
 network_profile {
   network_plugin    = "azure"
   load_balancer_sku = "standard"
 }
}

Ajouter un pool de nœuds système dédié à un cluster AKS existant

Vous pouvez ajouter un ou plusieurs pools de nœuds système à des clusters AKS existants. Il est recommandé de planifier vos pods d’application sur les pools de nœuds utilisateur et de dédier des pools de nœuds système uniquement à des pods système critiques. Cette séparation empêche les pods d’application non autorisés de supprimer accidentellement des pods système. Appliquez ce comportement avec le CriticalAddonsOnly=true:NoScheduletaint pour vos pools de nœuds système.

La commande suivante ajoute un pool de nœuds dédié de mode System avec trois nœuds. La az aks nodepool add commande ajoute trois nœuds par défaut, mais vous utilisez le --node-count paramètre pour spécifier le nombre de nœuds souhaités.

az aks nodepool add \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_SYSTEM_NP \
  --node-count 3 \
  --node-taints CriticalAddonsOnly=true:NoSchedule \
  --mode System

Vous pouvez ajouter un ou plusieurs pools de nœuds système à des clusters AKS existants. Il est recommandé de planifier vos pods d’application sur les pools de nœuds utilisateur et de dédier des pools de nœuds système uniquement à des pods système critiques. L’ajout de pools de nœuds système empêche les pods d’application malveillants de tuer accidentellement des pods système. Appliquez le comportement avec la CriticalAddonsOnly=true:NoSchedule pour vos pools de nœuds système.

La commande suivante ajoute un pool de nœuds dédié de mode System avec trois nœuds.

$systempoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewSystemNP
  Count = 3
  Mode = 'System'
  NodeTaint = 'CriticalAddonsOnly=true:NoSchedule'
}

New-AzAksNodePool @systempoolparams

Ajoutez un deuxième pool de nœuds configuré en tant que pool de nœuds système pour isoler les charges de travail système critiques.

resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
 name                  = "systempool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 3
 mode                  = "System"
 max_pods              = 30
 node_taints = [
   "CriticalAddonsOnly=true:NoSchedule"
 ]
}

Cette configuration applique le taint CriticalAddonsOnly=true:NoSchedule afin que les charges de travail de l'application ne soient pas programmées sur le pool de nœuds système dédié.

Ajouter un pool de nœuds utilisateur

Pour séparer les charges de travail d’application des composants système, ajoutez un pool de nœuds utilisateur.

resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
 name                  = "userpool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 2
 mode                  = "User"
 max_pods              = 30
 enable_auto_scaling = true
 min_count           = 2
 max_count           = 4
}

Les pools de nœuds utilisateur fournissent un environnement dédié pour les pods d’application.

Vérification finale avant le déploiement

Vous main.tf devrait inclure les éléments suivants :

  • Configuration de Terraform et de fournisseur
  • groupe de ressources
  • Cluster AKS avec le pool de nœuds système par défaut
  • Pool de nœuds système dédié
  • Pool de nœuds utilisateur facultatif, si nécessaire

Une configuration terminée ressemble à l’exemple suivant :

terraform {
 required_version = ">= 1.0"
 required_providers {
   azurerm = {
     source  = "hashicorp/azurerm"
     version = "~> 4.0"
   }
 }
}
provider "azurerm" {
 features {}
}
resource "azurerm_resource_group" "rg" {
 name     = "aks-system-pool-rg"
 location = "East US"
}
resource "azurerm_kubernetes_cluster" "aks" {
 name                = "aks-system-pool-cluster"
 location            = azurerm_resource_group.rg.location
 resource_group_name = azurerm_resource_group.rg.name
 dns_prefix          = "akssystempool"
 default_node_pool {
   name                = "systemnp"
   vm_size             = "Standard_D4s_v5"
   node_count          = 2
   min_count           = 2
   max_count           = 3
   max_pods            = 30
   enable_auto_scaling = true
 }
 identity {
   type = "SystemAssigned"
 }
 network_profile {
   network_plugin    = "azure"
   load_balancer_sku = "standard"
 }
}
resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
 name                  = "systempool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 3
 mode                  = "System"
 max_pods              = 30
 node_taints = [
   "CriticalAddonsOnly=true:NoSchedule"
 ]
}
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
 name                  = "userpool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 2
 mode                  = "User"
 max_pods              = 30
 enable_auto_scaling = true
 min_count           = 2
 max_count           = 4
}

Valider la configuration

Exécutez les commandes suivantes pour mettre en forme, initialiser et valider la configuration :

terraform fmt
terraform init
terraform validate

Passer en revue le plan d’exécution

Exécutez la commande suivante pour passer en revue le plan d’exécution avant le déploiement :

terraform plan

Appliquer la configuration

Exécutez la commande suivante pour créer le cluster AKS et les pools de nœuds :

terraform apply

Vérifier le déploiement

Vérifiez la configuration du pool de nœuds système dédié :

az aks nodepool show \
 --resource-group aks-system-pool-rg \
 --cluster-name aks-system-pool-cluster \
 --name systempool

Vérifiez la sortie et confirmez que le pool de nœuds est configuré avec mode défini sur System. Connectez-vous au cluster et listez les nœuds.

az aks get-credentials \
 --resource-group aks-system-pool-rg \
 --name aks-system-pool-cluster

kubectl get nodes

Afficher les détails de votre pool de nœuds

Vous pouvez vérifier les détails de votre pool de nœuds à l’aide de la commande suivante.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_SYSTEM_NP \
  --query "{Count:count, Mode:mode, NodePool:name, NodeTaint:nodeTaints, ResourceGroup:resourceGroup}"

Un mode de type Système est défini pour les pools de nœuds système, et un mode de type Utilisateur est défini pour les pools de nœuds utilisateur. Pour un pool système, vérifiez que la propriété nodeTaints est définie sur CriticalAddonsOnly=true:NoSchedule, ce qui empêche les pods de l'application d’être programmés sur ce pool de nœuds.

{
  "Count": 3,
  "Mode": "System",
  "NodePool": "systempool",
  "NodeTaint": [
    "CriticalAddonsOnly=true:NoSchedule"
  ],
  "ResourceGroup": "myResourceGroup"
}

Vous pouvez vérifier les détails de votre pool de nœuds à l’aide de la commande suivante.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewSystemNP |
  Select-Object -Property Count, Mode, Name, NodeTaints

Un mode de type Système est défini pour les pools de nœuds système, et un mode de type Utilisateur est défini pour les pools de nœuds utilisateur. Pour un pool système, vérifiez que le 'taint' est défini sur CriticalAddonsOnly=true:NoSchedule, ce qui empêche les pods de l'application d'être planifiés sur ce pool de nœuds.

Count Mode   Name       NodeTaints
----- ----   ----       ----------
    3 System systempool {CriticalAddonsOnly=true:NoSchedule}

Cette étape a été incluse dans l’étape De vérification du déploiement de la section précédente.

Un mode de type Système est défini pour les pools de nœuds système, et un mode de type Utilisateur est défini pour les pools de nœuds utilisateur. Pour un pool système, vérifiez que la propriété nodeTaints est définie sur CriticalAddonsOnly=true:NoSchedule, ce qui empêche les pods de l'application d’être programmés sur ce pool de nœuds.

Mettre à jour les pools de nœuds utilisateur et système existants dans un cluster

Note

Une version d'API 2020-03-01 ou supérieure doit être utilisée pour définir un mode de pool de nœuds système. Les clusters créés sur les versions d’API antérieures à 2020-03-01 ne contiennent que des pools de nœuds utilisateur. Pour recevoir les fonctionnalités et avantages du pool de nœuds système sur les clusters plus anciens, mettez à jour le mode des pools de nœuds existants avec les commandes suivantes sur la dernière version de Azure CLI.

Vous pouvez modifier les modes pour les pools de nœuds système et les pools de nœuds utilisateur. Vous pouvez modifier un pool de nœuds système en pool de nœuds utilisateur uniquement si un autre pool de nœuds système existe déjà sur le cluster AKS.

Exécutez cette commande pour créer un pool de nœuds en mode système.

az aks nodepool add \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --node-count 3 \
  --mode System

Vous pouvez vérifier le mode avec la commande suivante.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --query mode --output tsv
System

Exécutez cette commande pour modifier un pool de nœuds système en pool de nœuds utilisateur.

az aks nodepool update \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --mode User

Vous pouvez vérifier que le mode a changé avec la commande suivante.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --query mode --output tsv
User

Note

Une version d'API 2020-03-01 ou supérieure doit être utilisée pour définir un mode de pool de nœuds système. Les clusters créés sur les versions d’API antérieures à 2020-03-01 ne contiennent que des pools de nœuds utilisateur. Pour recevoir les fonctionnalités et avantages du pool de nœuds système sur les clusters plus anciens, mettez à jour le mode des pools de nœuds existants avec les commandes suivantes sur la dernière version Azure PowerShell.

Vous pouvez modifier les modes pour les pools de nœuds système et les pools de nœuds utilisateur. Vous pouvez modifier un pool de nœuds système en pool de nœuds utilisateur uniquement si un autre pool de nœuds système existe déjà sur le cluster AKS.

Exécutez cette commande pour créer un pool de nœuds en mode système.

$newpoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewNodePool
  Count = 3
  Mode = 'System'
}

New-AzAksNodePool @newpoolparams

Vous pouvez vérifier le mode avec la commande suivante.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
  Select-Object -Property Mode
Mode
----
System

Exécutez cette commande pour modifier un pool de nœuds système en pool de nœuds utilisateur.

$updateuserpoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewNodePool
  Mode = 'User'
}

Update-AzAksNodePool @updateuserpoolparams

Vous pouvez vérifier le mode avec la commande suivante.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
  Select-Object -Property Mode
Mode
----
User

Pour modifier le mode d’un pool de nœuds existant, mettez à jour la mode valeur dans la configuration Terraform et réappliquez le déploiement.

Par exemple, la configuration suivante modifie le user_pool pool de nœuds en pool de nœuds système :

resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
 name                  = "userpool"
 kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
 vm_size               = "Standard_D4s_v5"
 node_count            = 2
 mode                  = "System"
 max_pods              = 30
 enable_auto_scaling = true
 min_count           = 2
 max_count           = 4
}

Après avoir mis à jour la configuration, exécutez :

terraform plan
terraform apply

Pour modifier le pool de nœuds système dédié en pool de nœuds utilisateur, mettez à jour la valeur de mode à User pour system_pool, puis réappliquez la configuration.

Supprimer un pool de nœuds système

Note

Pour utiliser des pools de nœuds système sur des clusters AKS avant la version 2020-03-01de l’API, ajoutez un nouveau pool de nœuds système, puis supprimez le pool de nœuds par défaut d’origine.

Vous devez disposer d’au moins deux pools de nœuds système sur votre cluster AKS pour pouvoir en supprimer un.

az aks nodepool delete \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL

Après avoir supprimé le pool de nœuds système, vous devez disposer du pool de nœuds système d’origine créé avec le cluster et du pool de nœuds système que vous avez créé dans la section ajouter un pool de nœuds système dédié à un cluster AKS existant.

az aks nodepool list \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --query "[].{Name:name, Mode:mode}" --output table

Note

Pour utiliser des pools de nœuds système sur des clusters AKS avant la version 2020-03-01de l’API, ajoutez un nouveau pool de nœuds système, puis supprimez le pool de nœuds par défaut d’origine.

Vous devez disposer d’au moins deux pools de nœuds système sur votre cluster AKS pour pouvoir en supprimer un.

La commande suivante vous invite à confirmer la suppression du pool de nœuds. Tapez Y pour confirmer.

Remove-AzAksNodePool $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool

Après avoir supprimé le pool de nœuds système, vous devez disposer du pool de nœuds système d’origine créé avec le cluster et du pool de nœuds système que vous avez créé dans la section ajouter un pool de nœuds système dédié à un cluster AKS existant.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName

Un cluster doit toujours contenir au moins un pool de nœuds système. Si le cluster possède plusieurs pools de nœuds système, vous pouvez en supprimer un en supprimant son bloc de ressources de la configuration Terraform et en appliquant la modification.

Par exemple, supprimez le system_pool bloc de ressources, puis exécutez :

terraform plan
terraform apply

Nettoyer les ressources

Lorsque vous supprimez le groupe de ressources du cluster AKS, toutes les ressources de cluster et le groupe de ressources de nœud associé (MC_) sont supprimées.

Pour supprimer le cluster, utilisez la commande az group delete pour supprimer le groupe de ressources AKS :

az group delete --name $RESOURCE_GROUP --yes --no-wait

Pour supprimer le cluster, utilisez la commande Remove-AzResourceGroup pour supprimer le groupe de ressources AKS :

Remove-AzResourceGroup -Name $ResourceGroup -Force

Lorsque vous avez terminé, supprimez les ressources :

terraform destroy

Étapes suivantes

Dans cet article, vous avez appris comment créer et gérer des pools de nœuds système dans un cluster AKS. Pour plus d’informations sur le démarrage et l’arrêt des pools de nœuds AKS, voir Démarrer et arrêter des pools de nœuds AKS.