Affecter des groupes de réservations de capacité aux pools de nœuds de Azure Kubernetes Service (AKS)

À mesure que vos demandes de charge de travail changent, vous pouvez associer des groupes de réservations de capacité existants à vos pools de nœuds Azure Kubernetes Service (AKS) pour garantir leur capacité allouée. Les groupes de réservations de capacité vous permettent de réserver la capacité de calcul dans une région Azure ou une zone de disponibilité pendant toute durée. Cette fonctionnalité est utile pour les charges de travail qui nécessitent une capacité garantie, comme celles avec des modèles de trafic prévisibles ou celles qui doivent répondre à des exigences de performances spécifiques.

Dans cet article, vous apprendrez à utiliser les groupes de réservation de capacité avec les pools de nœuds dans AKS.

Note

La suppression d’un pool de nœuds dissocie implicitement ce pool de nœuds de tout groupe de réservation de capacité associé avant que le pool ne soit supprimé. La suppression d’un cluster dissocie implicitement tous les pools de nœuds de ce cluster de leurs groupes de réservation de capacité associés.

Conditions préalables à l’utilisation des groupes de réservation de capacité avec les pools de nœuds AKS

  • Vous avez besoin d’Azure CLI version 2.56 ou ultérieure installée et configurée. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.
  • Vous avez besoin d’un groupe de réservations de capacité existant avec au moins une réservation de capacité. Sinon, le pool de nœuds est ajouté au cluster avec un avertissement et aucun groupe de réservation de capacité n’est associé.
  • Vous devez créer une identité managée attribuée par l'utilisateur avec le rôle Contributor pour le groupe de ressources qui contient le groupe de réservations de capacité et l’attribuer à votre cluster AKS. Les identités managées affectées par le système ne fonctionnent pas pour cette fonctionnalité.

Créer une identité managée affectée par l’utilisateur et l’affecter à un cluster AKS

  1. Créez une identité managée affectée par l’utilisateur à l’aide de la commande az identity create.

    az identity create --name <identity-name> --resource-group <resource-group-name> --location <location>
    
  2. Obtenez l’ID de l’identité managée affectée par l’utilisateur à l’aide de la commande et définissez-la az identity show sur une variable d’environnement.

    IDENTITY_ID=$(az identity show --name <identity-name> --resource-group <resource-group-name> --query identity.id -o tsv)
    
  3. Attribuez le Contributor rôle à l’identité affectée par l’utilisateur en utilisant la commande az role assignment create.

    az role assignment create --assignee $IDENTITY_ID --role "Contributor" --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>
    

    La propagation de l’attribution de rôle peut prendre jusqu’à 60 minutes .

  4. Affectez l'identité gérée attribuée par l'utilisateur à un cluster AKS nouveau ou existant à l'aide du drapeau --assign-identity avec la commande az aks create ou az aks update.

    # Create a new AKS cluster with the user-assigned managed identity
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --generate-ssh-keys
    
    # Update an existing AKS cluster to use the user-assigned managed identity
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> \
        --node-count <node-count> \
        --enable-managed-identity \
        --assign-identity $IDENTITY_ID         
    

Obtenir l’ID d’un groupe de réservation de capacité existant

Obtenez l’ID d’un groupe de réservations de capacité existant à l’aide de la commande az capacity reservation group show et affectez-le à une variable d’environnement.

CRG_ID=$(az capacity reservation group show --capacity-reservation-group <crg-name> --resource-group <resource-group-name> --query id -o tsv)

Associer un groupe de réservation de capacité existant à un nouveau pool de nœuds

Associez un groupe de réservations de capacité existant à un nouveau pool de nœuds à l’aide de la commande az aks nodepool add avec l’indicateur --crg-id. L’exemple suivant suppose que vous disposez d’un CRG nommé « myCRG ».

az aks nodepool add --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID

Associer un groupe de réservations de capacité existant à un pool de nœuds existant (préversion)

Associez un groupe de réservation de capacité existant à un groupe de nœuds existant à l’aide de la commande az aks nodepool update avec l’indicateur --crg-id.

  • Pour les pools de nœuds zonaux, cette opération lance une mise à jour propagée du pool de nœuds cibles. Le processus de mise à jour implique une mise en cordon progressive et une vidange de tous les nœuds, suivies d’un redémarrage pour appliquer le changement.
  • Pour les pools de nœuds non zonaux (régionaux) durant la phase de préversion, ramenez d’abord le pool de nœuds à zéro, puis appliquez le groupe de réservation de capacité.

Prerequisites

  • Installez la aks-preview version 20.0.0b7 de l’extension Azure CLI ou ultérieure avant d’exécuter cette commande.

  • Vérifiez que le groupe de réservations de capacité dispose d’une capacité suffisante pour votre stratégie de mise à niveau du pool de nœuds. Quand maxSurge > 0, réservez une capacité supplémentaire pour la valeur de surtension maximale. Par exemple, un pool de 10 nœuds avec maxSurge défini sur 2 peut exécuter jusqu’à 12 nœuds lors d’une mise à niveau. Cette capacité supplémentaire n’est pas nécessaire pour les déploiements utilisant uniquement maxUnavailable ni pour les scénarios régionaux de mise à l’échelle à zéro.

    az aks nodepool update --resource-group <resource-group-name> --cluster-name <cluster-name> --name <node-pool-name> --crg-id $CRG_ID
    

Associer un groupe de réservation de capacité existant à un pool de nœuds système

Pour associer un groupe de réservations de capacité existant à un pool de nœuds système, vous devez affecter l'identité managée assignée par l'utilisateur avec le rôle Contributor au cluster lors de la création du cluster. Vous pouvez ensuite utiliser l’indicateur --crg-id pour associer le groupe de réservations de capacité au pool de nœuds système.

  • Créez un nouveau cluster AKS avec l'identité managée assignée par l'utilisateur et associez-le au groupe de réservations de capacité à l'aide des options --assign-identity et --crg-id avec la commande az aks create.

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --location <location> \
        --node-vm-size <vm-size> --node-count <node-count> \
        --assign-identity $IDENTITY_ID \
        --crg-id $CRG_ID \
        --generate-ssh-keys
    

É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).