Partager via


Mettre à niveau des pools de nœuds dans Azure Kubernetes Service (AKS)

Dans cet article, vous allez apprendre à mettre à niveau un pool de nœuds unique et à mettre à niveau le plan de contrôle de cluster pour plusieurs pools de nœuds dans Azure Kubernetes Service (AKS).

Note

En guise de bonne pratique, vous devez mettre à niveau tous les pools de nœuds dans un cluster AKS vers la même version de Kubernetes. Le comportement par défaut de [az aks upgrade][az-aks-upgrade] consiste à mettre à niveau tous les pools de nœuds avec le plan de contrôle pour atteindre cet alignement. La possibilité de mettre à niveau des pools de nœuds individuels vous permet d’effectuer une mise à niveau propagée et de planifier des pods entre des pools de nœuds pour maintenir la durée de fonctionnement de l’application.

Mettre à niveau un pool de nœuds unique

Note

La version de l’image de système d’exploitation (SE) du pool de nœuds est liée à la version Kubernetes du cluster. Vous obtenez uniquement des mises à niveau d’image de système d’exploitation après une mise à niveau de cluster.

  1. Recherchez les mises à niveau disponibles à l’aide de la commande [az aks get-upgrades][az-aks-get-upgrades].

    az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name>
    
  2. Mettez à niveau un pool de nœuds spécifique à l’aide de la commande [az aks nodepool upgrade][az-aks-nodepool-upgrade].

    az aks nodepool upgrade \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --kubernetes-version <kubernetes-version> \
        --no-wait
    
  3. Vérifiez l’état de votre pool de nœuds à l’aide de la commande [az aks nodepool list][az-aks-nodepool-list].

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name>
    

    L’exemple de sortie suivant montre que le pool de nœuds est dans l’état de mise à niveau :

    [
      {
        ...
        "count": 3,
        ...
        "name": "<node-pool-name>",
        "orchestratorVersion": "<kubernetes-version>",
        ...
        "provisioningState": "Upgrading",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      },
      {
        ...
        "count": 2,
        ...
        "name": "<node-pool-name-2>",
        "orchestratorVersion": "<kubernetes-version-2>",
        ...
        "provisioningState": "Succeeded",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      }
    ]
    

    Il faut quelques minutes pour mettre à niveau les nœuds vers la version spécifiée. Une fois la mise à niveau terminée, l'état du pool de nœuds provisioningState passe à Réussi.

Mettre à niveau un plan de contrôle de cluster avec plusieurs pools de nœuds

Un cluster AKS a deux objets de ressources de cluster avec des versions kubernetes associées : la version kubernetes du plan de contrôle de cluster et un pool de nœuds avec une version Kubernetes.

Comportement de mise à niveau pour le plan de contrôle et les pools de nœuds

Le plan de contrôle est mappé à un ou plusieurs pools de nœuds. Le comportement d’une opération de mise à niveau dépend de la commande Azure CLI que vous utilisez et des indicateurs que vous spécifiez :

  • az aks upgrade met à niveau le plan de contrôle et tous les pools de nœuds du cluster vers la même version Kubernetes.
  • La commande az aks upgrade avec l’option --control-plane-only met à niveau uniquement le plan de contrôle du cluster et laisse tous les pools de nœuds inchangés.
  • az aks nodepool upgrade met uniquement à niveau le pool de nœuds cible avec la version de Kubernetes spécifiée.

Règles de validation pour les mises à niveau

Note

Kubernetes utilise le schéma de contrôle de version standard Semantic Versioning. Le numéro de version est exprimé par x.y.z, où x est la version principale, y est la version secondaire et z est la version du correctif. Par exemple, dans la version 1.12.6, 1 est la version principale, 12 est la version mineure, et 6 est la version corrective. La version Kubernetes du plan de contrôle et le pool de nœuds initial sont définis lors de la création du cluster. Les autres pools de nœuds ont leur version Kubernetes définie lorsqu’ils sont ajoutés au cluster. Les versions Kubernetes peuvent différer entre les pools de nœuds ainsi qu’entre un pool de nœuds et le plan de contrôle.

Les mises à niveau de Kubernetes du plan de contrôle ou des pools de nœuds d’un cluster sont validées en utilisant les ensembles de règles suivants :

  • Règles pour la mise à niveau des pools de nœuds par les versions valides:

    • La version du pool de nœuds doit avoir la même version principale que le plan de contrôle.
    • La version secondaire du pool de nœuds doit être située à deux versions secondaires de la version du plan de contrôle.
    • La version du pool de nœuds ne peut pas être supérieure à la version du major.minor.patch de contrôle.
  • Règles pour l’envoi d’une opération de mise à niveau :

    • Vous ne pouvez pas passer à une version de Kubernetes antérieure pour le plan de contrôle ou le pool de nœuds.
    • Si une version de Kubernetes de pool de nœuds n’est pas spécifiée, le comportement dépend du client. Dans les modèles Azure Resource Manager (ARM), la déclaration revient à la version existante définie pour le pool de nœuds. Si rien n’est défini, la valeur revient à celle de la version du plan de contrôle.
    • Vous ne pouvez pas soumettre plusieurs opérations simultanément sur une même ressource de plan de contrôle ou de pool de nœuds. Vous pouvez soit mettre à niveau, soit mettre à l’échelle un plan de contrôle ou un pool de nœuds à un moment donné.

Étapes suivantes : Gérer les pools de nœuds dans AKS

Pour en savoir plus sur la gestion des pools de nœuds dans AKS, consultez Gérer les pools de nœuds dans Azure Kubernetes Service (AKS).