Mettre à l’échelle manuellement le nombre de nœuds dans un cluster Azure Kubernetes Service (AKS)

Si les besoins en ressources de vos applications changent, les performances de votre cluster peuvent être affectées en raison d’une faible capacité sur le processeur, la mémoire, l’espace PID ou les tailles de disque. Pour résoudre ces modifications, vous pouvez mettre à l’échelle manuellement votre cluster AKS pour exécuter un nombre différent de nœuds. Si vous réduisez l’échelle, les nœuds sont soigneusement coordonnés et purgés afin de limiter les perturbations pour les applications en cours d’exécution. Si vous effectuez une montée en puissance, AKS attend que les nœuds soient marqués Prêt par le cluster Kubernetes avant que des pods soient planifiés dans ces nœuds.

Cet article décrit comment augmenter ou baisser manuellement le nombre de nœuds dans un cluster AKS.

Avant de commencer

  • Passez en revue les quotas et limites du service AKS pour vérifier que votre cluster peut être mis à l’échelle avec le nombre souhaité de nœuds.

  • 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 11 caractères.
    • Pour les pools de nœuds Windows, la longueur doit être comprise entre 1 et 6 caractères.

Mettre à l’échelle les nœuds de cluster

Important

La suppression de nœuds d’un pool de nœuds à l’aide de la commande kubectl n’est pas prise en charge. Cela peut créer des problèmes de mise à l’échelle avec votre cluster AKS.

  1. Procurez-vous le nom de votre pool de nœuds avec la commande az aks show. Dans l'exemple suivant, cette commande permet d’obtenir le nom du pool de nœuds du cluster myAKSCluster dans le groupe de ressources myResourceGroup :

    az aks show --resource-group myResourceGroup --name myAKSCluster --query agentPoolProfiles
    

    L'exemple suivant montre que le nom est nodepool1 :

    [
      {
        "count": 1,
        "maxPods": 110,
        "name": "nodepool1",
        "osDiskSizeGb": 30,
        "osType": "Linux",
        "vmSize": "Standard_DS2_v2"
      }
    ]
    
  2. Mettez à l’échelle les nœuds de cluster avec la commande az aks scale. L’exemple suivant met à l’échelle un cluster nommé myAKSCluster vers un nœud unique. Indiquez le nom du pool de nœuds --nodepool-name obtenu à l'aide de la commande précédente, par exemple nodepool1 :

    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 1 --nodepool-name <your node pool name>
    

    L'exemple de sortie suivant montre que le cluster a été correctement mis à l’échelle sur un nœud, comme indiqué dans la section agentPoolProfiles :

    {
      "aadProfile": null,
      "addonProfiles": null,
      "agentPoolProfiles": [
        {
          "count": 1,
          "maxPods": 110,
          "name": "nodepool1",
          "osDiskSizeGb": 30,
          "osType": "Linux",
          "vmSize": "Standard_DS2_v2",
          "vnetSubnetId": null
        }
      ],
      [...]
    }
    

Mise à l’échelle des pools de nœuds User à 0

Contrairement aux pools de nœuds System qui requièrent toujours des nœuds en cours d’exécution, les pools de nœuds User vous permettent de mettre à l’échelle à 0. Pour en savoir plus sur les différences entre les pools de nœuds système et utilisateur, consultez Pools de nœuds système et utilisateur.

Important

Vous ne pouvez pas mettre à l’échelle un pool de nœuds utilisateur sur 0 nœud lorsque l’autoscaler de cluster est activé. Pour mettre à l’échelle un pool de nœuds utilisateur sur 0 nœud, vous devez d’abord désactive l’autoscaler de cluster. Pour plus d’informations, consultez Désactiver l’autoscaler de cluster sur un pool de nœuds.

  • Pour mettre à l’échelle un pool d’utilisateurs sur 0, vous pouvez utiliser az aks nodepool scale en remplacement de la commande az aks scale ci-dessus et définir 0 comme nombre de nœuds.

    az aks nodepool scale --name <your node pool name> --cluster-name myAKSCluster --resource-group myResourceGroup  --node-count 0 
    
  • Vous pouvez également mettre à l’échelle automatiquement les pools de nœuds User sur zéro nœud, en affectant au paramètre --min-count de l’Autoscaler de cluster la valeur 0.

Étapes suivantes

Dans cet article, vous avez mis à l’échelle un cluster AKS manuellement pour augmenter ou réduire le nombre de nœuds. Vous pouvez également utiliser l’autoscaler de cluster pour mettre à l’échelle votre cluster automatiquement.