Instantané des pools de nœuds Azure Kubernetes Service (AKS)

AKS publie une nouvelle image de nœud chaque semaine. Chaque nouveau cluster, nouveau pool de nœuds ou cluster de mise à niveau reçoit toujours la dernière image, ce qui peut compliquer le maintien de la cohérence et la répétabilité des environnements.

Les instantanés de pool de nœuds vous permettent de prendre un instantané de la configuration de votre pool de nœuds, puis de créer des pools de nœuds ou de nouveaux clusters basés sur cet instantané tant que cette configuration et la version de Kubernetes sont prises en charge. Pour plus d’informations sur les fenêtres de prise en charge, consultez Versions de Kubernetes prises en charge dans AKS.

L'instantané est une ressource Azure qui contient les informations de configuration du pool de nœuds source, telles que la version de l'image du nœud, la version de Kubernetes, le type de système d'exploitation et la référence SKU du système d'exploitation. Vous pouvez ensuite référencer cette ressource d’instantané et les valeurs respectives de sa configuration pour créer un pool de nœuds ou un cluster basé sur celui-ci.

Avant de commencer

Cet article suppose que vous avez un cluster AKS existant. Si vous n’avez pas de cluster AKS, pour obtenir des conseils sur la conception d’une implémentation d’AKS à l’échelle de l’entreprise, consultez Planifier votre conception AKS.

Limites

  • Tout pool de nœuds ou cluster créé à partir d’un instantané doit utiliser une machine virtuelle de la même famille de machines virtuelles que l’instantané. Par exemple, vous ne pouvez pas créer un nouveau pool de nœuds de série N basé sur un instantané capturé à partir d’un pool de nœuds de la série D, car les images de nœud dans ces cas sont structurellement différentes.
  • Les captures instantanées doivent être créées dans la même région que le pool source de nœuds ; elles peuvent servir à créer ou mettre à jour des clusters et des pools de nœuds dans d’autres régions.

Prendre un instantané d’un pool de nœuds

Pour prendre un instantané à partir d'un pool de nœuds, vous avez besoin de l'ID de ressource du pool de nœuds, que vous pouvez obtenir à l'aide de la commande suivante :

NODEPOOL_ID=$(az aks nodepool show --name nodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --query id -o tsv)

Important

Votre pool de nœuds AKS doit être créé ou mis à niveau après le 10 novembre 2021 pour qu’un instantané puisse y être pris. Si vous utilisez la version 0.5.59 de l’extension Azure CLI aks-preview ou une version plus récente, les commandes pour l’instantané du pool de nœuds ont changé. Pour obtenir les commandes mises à jour, consultez les informations de référence CLI sur les instantanés du pool de nœuds.

Maintenant, pour prendre un instantané du pool de nœuds précédent, vous utilisez la commande CLI az aks snapshot.

az aks nodepool snapshot create --name MySnapshot --resource-group MyResourceGroup --nodepool-id $NODEPOOL_ID --location eastus

Créer un pool de nœuds à partir d’un instantané

Tout d'abord, vous avez besoin de l'ID de ressource de l'instantané créé précédemment, que vous pouvez obtenir à l'aide de la commande suivante :

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

Maintenant, nous pouvons utiliser la commande suivante pour ajouter un nouveau pool de nœuds basé sur cet instantané.

az aks nodepool add --name np2 --cluster-name myAKSCluster --resource-group myResourceGroup --snapshot-id $SNAPSHOT_ID

Mise à niveau d’un pool de nœuds vers un instantané

Vous pouvez mettre à niveau un pool de nœuds vers une configuration d’instantané tant que la version de l’instantané Kubernetes et la version de l’image de nœud sont plus récentes que les versions du pool de nœuds actuel.

Tout d'abord, vous avez besoin de l'ID de ressource de l'instantané créé précédemment, que vous pouvez obtenir à l'aide de la commande suivante :

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

Nous pouvons maintenant utiliser cette commande pour mettre à niveau ce pool de nœuds vers cette configuration de l’instantané.

az aks nodepool upgrade --name nodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --snapshot-id $SNAPSHOT_ID

Notes

La version de l'image de votre pool de nœuds est la même que celle contenue dans l'instantané et reste la même tout au long de chaque opération de mise à l'échelle. Toutefois, si ce pool de nœuds est mis à niveau ou si une mise à niveau d'image de nœud est effectuée sans fournir d'ID d'instantané, l'image de nœud est mise à niveau vers la dernière version.

Notes

Pour ne mettre à niveau que la version de nœud de votre pool de nœuds, utilisez l’indicateur --node-image-only. Cela est nécessaire lors de la mise à niveau de la version de l’image du nœud pour un pool de nœuds basé sur un instantané, avec une version identique de Kubernetes.

Créer un cluster à partir d’un instantané

Lorsque vous créez un cluster à partir d'un instantané, la configuration de l'instantané crée le pool système d'origine du cluster.

Tout d'abord, vous avez besoin de l'ID de ressource de l'instantané créé précédemment, que vous pouvez obtenir à l'aide de la commande suivante :

SNAPSHOT_ID=$(az aks nodepool snapshot show --name MySnapshot --resource-group myResourceGroup --query id -o tsv)

Nous pouvons maintenant utiliser cette commande pour créer ce cluster à partir de la configuration de l’instantané.

az aks create \
    --name myAKSCluster2 \
    --resource-group myResourceGroup \
    --snapshot-id $SNAPSHOT_ID \
    --generate-ssh-keys

Étapes suivantes