Tutoriel : Migrer des nœuds vers Azure Linux

Dans ce tutoriel, partie trois sur cinq, vous migrez vos nœuds existants vers Azure Linux. Vous pouvez migrer vos nœuds existants vers Azure Linux en utilisant l’une des méthodes suivantes :

  • Suppression des pools de nœuds existants et ajout de nouveaux pools de nœuds Azure Linux.
  • Effectuez une migration sur place du SKU du système d’exploitation.

Les commandes de ce didacticiel utilisent les variables d’environnement définies dans Tutorial 1 : créez un cluster avec l’hôte de conteneur Linux Azure pour AKS.

Si vous n’avez aucun nœud existant à migrer vers Azure Linux, passez au tutoriel suivant. Dans les prochains tutoriels, vous apprendrez à activer la télémétrie et le monitoring dans vos clusters et à mettre à niveau les nœuds Azure Linux.

Prerequisites

Note

Lors de l’ajout d’un nouveau pool de nœuds Azure Linux, vous devez en ajouter au moins un en tant que --mode System. Dans le cas contraire, AKS ne vous permet pas de supprimer votre pool de nœuds existant.

  • Vous devez disposer de la dernière version d’Azure CLI. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.

Définir des variables d’environnement

Définissez les variables d’environnement suivantes pour créer des noms de ressources uniques pour chaque déploiement. Remplacez l’espace réservé <your-node-pool-name> par un nom de votre choix. Vous pouvez éventuellement ajouter un suffixe aléatoire pour garantir l’unicité. Le nom d’un pool de nœuds doit commencer par une lettre minuscule et ne peut contenir que des caractères alphanumériques. Pour des pools de nœuds Linux, la longueur doit être comprise entre 1 et 12 caractères.

# Set random suffix for uniqueness
export RANDOM_SUFFIX=$(openssl rand -hex 3)

# Set node pool name
export NODE_POOL_NAME="<your-node-pool-name>$RANDOM_SUFFIX"

Ajouter des pools de nœuds Azure Linux et supprimer des pools de nœuds existants

  1. Ajoutez un nouveau pool de nœuds Azure Linux à l’aide de la commande az aks nodepool add. Cette commande ajoute un nouveau pool de nœuds à votre cluster avec l’indicateur --mode System, ce qui en fait un pool de nœuds système. Les pools de nœuds système sont requis pour les clusters Azure Linux.

    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinux
    

    Exemple de sortie :

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Supprimer vos nœuds existants en utilisant la commande az aks nodepool delete.

Migration de la référence SKU du système d’exploitation sur place

Vous pouvez migrer vos pools de nœuds Ubuntu existants vers Azure Linux en modifiant le SKU du système d’exploitation du pool de nœuds, ce qui fait passer le cluster par le processus standard de mise à niveau de l’image des nœuds. Cette nouvelle fonctionnalité ne nécessite pas de créer de nouveaux pools de nœuds.

Limitations de la migration sur place du SKU du système d’exploitation

Il existe plusieurs paramètres qui peuvent bloquer la requête de migration de référence SKU du système d’exploitation. Pour garantir une migration réussie, passez en revue les instructions et limitations suivantes :

  • La fonctionnalité de migration de la référence SKU du système d’exploitation n’est pas disponible via PowerShell ou le portail Azure.
  • La fonctionnalité de migration de référence SKU du système d’exploitation n’est pas en mesure de renommer des pools de nœuds existants.
  • Ubuntu, Azure Linux et Azure Linux avec OS Guard sont les seules cibles de migration de référence SKU de système d’exploitation Linux prises en charge.
  • Le lancement approuvé est requis par défaut pour Azure Linux avec OS Guard. Vous devez activer le lancement approuvé pour pouvoir migrer vers Azure Linux avec OS Guard. Étant donné que vous ne pouvez pas activer le lancement approuvé sur les pools de nœuds existants, vous devez créer un pool de nœuds avec le lancement approuvé activé et migrer vos charges de travail vers ce pool de nœuds.
  • Les clients utilisant exclusivement des tailles de machines virtuelles (VM) de génération 1 ne peuvent pas migrer vers Azure Linux avec OS Guard, car il n’existe aucune image de génération 1 prise en charge. Dans ce cas, vous devez créer de nouveaux pools de nœuds avec une taille de machine virtuelle compatible avec Gen 2.
  • Une référence SKU du système d’exploitation Ubuntu avec UseGPUDedicatedVHD activé ne peut pas effectuer une migration de référence SKU du système d’exploitation.
  • Une référence SKU du système d’exploitation Ubuntu avec CVM 20.04 activé ne peut pas effectuer une migration de référence SKU du système d’exploitation.
  • Les pools de nœuds pour lesquels Kata est activé ne peuvent pas effectuer une migration de référence SKU du système d’exploitation.
  • La migration de référence SKU du système d’exploitation Windows n’est pas prise en charge.

Conditions préalables à la migration de référence SKU du système d’exploitation sur place

  • Un cluster AKS existant avec au moins un pool de nœuds Ubuntu.
  • Nous vous recommandons de vous assurer que vos charges de travail sont configurées et fonctionnent correctement sur l’hôte de conteneur Azure Linux avant d’essayer d’utiliser la fonction de migration de la référence SKU du système d’exploitation en déployant un cluster Azure Linux en développement/production et en vérifiant que votre service reste sain.
  • Vérifiez que la fonctionnalité de migration fonctionne pour vous en test/développement avant d’utiliser le processus sur un cluster de production.
  • Assurez-vous que vos pods ont suffisamment de budget d’interruption de pod (PDB) pour permettre à AKS de déplacer des pods entre des machines virtuelles pendant la mise à niveau.
  • Vous avez besoin d’Azure CLI version 2.61.0 ou ultérieure. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
  • Si vous utilisez Terraform, vous devez disposer de la version 3.111.0 ou ultérieure du module Terraform AzureRM.

Migrer la référence SKU du système d’exploitation de votre pool de nœuds Ubuntu

Migrez la référence SKU du système d’exploitation de votre pool de nœuds vers Azure Linux à l’aide de la commande az aks nodepool update. Cette commande met à jour la référence SKU du système d’exploitation pour votre pool de nœuds d’Ubuntu vers Azure Linux. La modification de la référence SKU du système d’exploitation déclenche une opération de mise à niveau immédiate, ce qui prend plusieurs minutes.

az aks nodepool update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --os-sku AzureLinux

Exemple de sortie :

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureLinux",
  "provisioningState": "Succeeded"
}

Note

Si vous rencontrez des problèmes lors de la migration de la référence SKU du système d’exploitation, vous pouvez restaurer votre référence SKU de système d’exploitation précédente.

Vérifier la migration de la référence SKU de système d’exploitation

Une fois la migration terminée sur vos clusters de test, vérifiez ce qui suit pour garantir la réussite de la migration :

  • Si votre cible de migration est Azure Linux, exécutez la commande kubectl get nodes -o wide. La sortie doit afficher Microsoft Azure Linux 3.0 en tant qu’image de système d’exploitation et .azl3 à la fin de votre version de noyau.
  • Exécutez la commande kubectl get pods -o wide -A pour vérifier que tous vos pods et daemonsets s’exécutent sur le nouveau pool de nœuds.
  • Exécutez la commande kubectl get nodes --show-labels pour vérifier que toutes les étiquettes de nœud de votre pool de nœuds mis à niveau correspondent à vos attentes.

Conseil / Astuce

Nous vous recommandons de surveiller l’intégrité de votre service pendant quelques semaines avant de migrer vos clusters de production.

Exécuter la migration de référence SKU du système d’exploitation sur vos clusters de production

  1. Mettez à jour vos modèles existants pour définir OSSKU=AzureLinux. Vérifiez que votre apiVersion est définie sur 2023-07-01 ou ultérieur.

    • Modèles ARM : Utiliser "OSSKU": "AzureLinux" dans la agentPoolProfile section.
    • Bicep : utilisez osSku: "AzureLinux" dans la section agentPoolProfile.
    • Terraform : utiliser os_sku = "AzureLinux" dans la default_node_pool section.
  2. Redéployez votre modèle ARM, Bicep ou Terraform pour que le cluster applique le nouveau paramètre OSSKU. Au cours de ce déploiement, votre cluster se comporte comme s’il était en train de recevoir une mise à jour de l’image du nœud. Votre cluster augmente sa capacité, puis redémarre les nœuds existants un par un dans la dernière image AKS de votre nouvelle référence SKU de système d’exploitation.

Revenir à votre référence SKU de système d’exploitation précédente

Si vous rencontrez des problèmes lors de la migration de la référence SKU du système d’exploitation, vous pouvez restaurer votre référence SKU de système d’exploitation précédente. Pour ce faire, vous devez modifier le champ de référence SKU du système d’exploitation dans votre modèle et soumettre à nouveau le déploiement, ce qui déclenche une autre opération de mise à niveau et restaure le pool de nœuds vers sa référence SKU de système d’exploitation précédente.

Vous pouvez revenir à votre référence SKU de système d’exploitation précédente à l’aide de la az aks nodepool update commande. Cette commande met à jour la référence SKU du système d’exploitation pour votre pool de nœuds, qui repasse d’Azure Linux à Ubuntu.

Étape suivante

Dans ce tutoriel, vous avez migré des nœuds existants vers Azure Linux en supprimant les pools de nœuds existants et en ajoutant de nouveaux Azure pools de nœuds Linux ou en effectuant une migration de référence SKU de système d’exploitation sur place.

Dans le prochain tutoriel, vous apprendrez à activer la télémétrie pour surveiller vos clusters.