Creare un cluster di provisioning automatico dei nodi (NAP) in una rete virtuale personalizzata nel servizio Azure Kubernetes (AKS)

Questo articolo illustra come creare un cluster Servizio Azure Kubernetes (AKS) con provisioning automatico dei nodi (NAP) abilitato in una rete virtuale personalizzata. Si crea una rete virtuale e una subnet, quindi si concede a un'identità gestita l'accesso alla rete virtuale.

Prerequisiti

Limitazioni

Impostare le variabili di ambiente e creare un gruppo di risorse

  1. Impostare le variabili di ambiente usate in questo articolo. Sostituire i valori segnaposto con i propri valori.

    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. Selezionare la sottoscrizione Azure usando il az account set comando .

    az account set --subscription $SUBSCRIPTION_ID
    
  3. Creare un gruppo di risorse usando il comando az group create.

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

Creare una rete virtuale e una subnet

  1. Creare una rete virtuale usando il az network vnet create comando .

    az network vnet create \
        --name $VNET_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --address-prefixes 172.19.0.0/16
    
  2. Creare una subnet del nodo usando il az network vnet subnet create comando .

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

Creare un'identità gestita e assegnare autorizzazioni di rete virtuale

  1. Creare un'identità gestita usando il comando az identity create.

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. Usare il az identity show comando per ottenere l'ID entità dell'identità gestita e salvarlo in una variabile di ambiente.

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Assegnare il ruolo Collaboratore rete all'identità gestita usando il az role assignment create comando . Il --assignee-principal-type parametro impedisce gli errori causati dai ritardi di replica dopo la creazione dell'identità gestita.

    Important

    Il ruolo Collaboratore rete nell'ambito della rete virtuale concede autorizzazioni generali. Prima di usare questo approccio nell'ambiente di produzione, esaminare la configurazione del controllo degli accessi in base al ruolo per le configurazioni di subnet personalizzate e valutare la possibilità di assegnare autorizzazioni subnet con ambito.

    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
    

Abilitare Protezione accesso alla rete e connettersi al cluster

Usare l'identità gestita, la rete virtuale e la subnet del nodo creata nelle sezioni precedenti. Il cluster deve usare un Load Balancer Standard, come descritto in Limitazioni.

  1. Creare un cluster AKS con NAP abilitato nella tua rete virtuale personalizzata usando il comando az aks create. La tabella seguente descrive i parametri protezione accesso alla rete e usati nel comando :

    Parametro Value Descrizione
    --node-provisioning-mode Auto Abilita Protezione accesso alla rete nel cluster.
    --network-plugin azure Usa Azure CNI per la rete del cluster.
    --network-plugin-mode overlay Usa Azure overlay CNI per la rete dei pod.
    --network-dataplane cilium Usa il piano dati Cilium.

    Per altre informazioni, vedere Panoramica delle configurazioni di rete per il provisioning automatico dei nodi in Servizio Azure Kubernetes (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
    

    Al termine della creazione del cluster, il comando restituisce informazioni in formato JSON sul cluster.

  2. Configurare kubectl per connettersi al cluster Kubernetes usando il comando az aks get-credentials. Questo comando scarica le credenziali e configura l'interfaccia della riga di comando di Kubernetes per usarle.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Verificare la connessione al cluster usando il comando kubectl get. Questo comando restituisce un elenco dei nodi del cluster.

    kubectl get nodes
    

Passaggi successivi

Per altre informazioni sul provisioning automatico dei nodi in AKS (Azure Kubernetes Service), vedere gli articoli seguenti: