Créer un cluster NAP (Node Auto-Provisioning) dans un réseau virtuel personnalisé dans Azure Kubernetes Service (AKS)

Cet article vous montre comment créer un cluster Azure Kubernetes Service (AKS) avec l’approvisionnement automatique de nœud (NAP) activé dans un réseau virtuel personnalisé. Vous créez un réseau virtuel et un sous-réseau, puis accordez un accès d’identité managée au réseau virtuel.

Prerequisites

Limites

Définir des variables d’environnement et créer un groupe de ressources

  1. Définissez les variables d’environnement utilisées dans cet article. Remplacez les valeurs des espaces réservés par vos propres valeurs.

    export SUBSCRIPTION_ID="<subscription-id>"
    export RG_NAME="<resource-group-name>"
    export LOCATION="<location>"
    export VNET_NAME="<vnet-name>"
    export SUBNET_NAME="<subnet-name>"
    export IDENTITY_NAME="<managed-identity-name>"
    export CLUSTER_NAME="<cluster-name>"
    
  2. Sélectionnez votre abonnement Azure à l’aide de la az account set commande.

    az account set --subscription $SUBSCRIPTION_ID
    
  3. Créez un groupe de ressources à l’aide de la commande az group create.

    az group create \
        --name $RG_NAME \
        --location $LOCATION
    

Créer un réseau virtuel et un sous-réseau

  1. Créez un réseau virtuel à l’aide de la az network vnet create commande.

    az network vnet create \
        --name $VNET_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --address-prefixes 172.19.0.0/16
    
  2. Créez un sous-réseau de nœud à l’aide de la az network vnet subnet create commande.

    az network vnet subnet create \
        --resource-group $RG_NAME \
        --vnet-name $VNET_NAME \
        --name $SUBNET_NAME \
        --address-prefixes 172.19.0.0/24
    

Créer une identité managée et attribuer des autorisations de réseau virtuel

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

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. Utilisez la commande pour obtenir l’ID az identity show principal de l’identité managée et l’enregistrer dans une variable d’environnement.

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Attribuez le rôle Contributeur réseau à l’identité managée à l’aide de la az role assignment create commande. Le --assignee-principal-type paramètre empêche les échecs causés par les retards de réplication après la création de l’identité managée.

    Important

    Le rôle Contributeur de réseau au niveau de l’étendue du réseau virtuel accorde des autorisations étendues. Avant d’utiliser cette approche en production, passez en revue la configuration RBAC pour les configurations de sous-réseau personnalisées et envisagez d’attribuer des autorisations de sous-réseau délimitées.

    az role assignment create \
        --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME" \
        --role "Network Contributor" \
        --assignee-object-id $IDENTITY_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

Activer NAP et se connecter au cluster

Utilisez l’identité managée, le réseau virtuel et le sous-réseau de nœud que vous avez créés dans les sections précédentes. Le cluster doit utiliser un Standard Load Balancer, comme décrit dans Limitations.

  1. Créez un cluster AKS avec NAP activé dans votre réseau virtuel personnalisé à l’aide de la az aks create commande. Le tableau suivant décrit les paramètres NAP et réseau utilisés dans la commande :

    Paramètre Valeur Description
    --node-provisioning-mode Auto Active NAP sur le cluster.
    --network-plugin azure Utilise Azure CNI pour la mise en réseau de cluster.
    --network-plugin-mode overlay Utilise Azure superposition CNI pour la mise en réseau des pods.
    --network-dataplane cilium Utilise le plan de données Cilium.

    Pour plus d’informations, consultez Vue d’ensemble des configurations de mise en réseau pour le provisionnement automatique de nœuds (NAP) dans Azure Kubernetes Service (AKS).

    az aks create \
        --name $CLUSTER_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --assign-identity "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$IDENTITY_NAME" \
        --network-dataplane cilium \
        --network-plugin azure \
        --network-plugin-mode overlay \
        --vnet-subnet-id "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME" \
        --node-provisioning-mode Auto \
        --generate-ssh-keys
    

    Une fois la création du cluster terminée, la commande retourne des informations au format JSON sur le cluster.

  2. Configurez kubectl afin de vous connecter à votre cluster Kubernetes avec la commande az aks get-credentials. Cette commande télécharge les informations d’identification et configure l’interface CLI Kubernetes pour les utiliser.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Pour vérifier la connexion à votre cluster, exécutez la commande kubectl get. Cette commande renvoie la liste des nœuds de cluster.

    kubectl get nodes
    

Étapes suivantes

Pour plus d’informations sur le provisionnement automatique de nœuds dans AKS, consultez les articles suivants :