Condividi tramite


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

Questo articolo illustra come creare una rete virtuale (VNet) e una subnet, creare un'identità gestita con autorizzazioni per accedere alla VNet, e creare un cluster del servizio Azure Kubernetes (AKS) nella tua rete virtuale personalizzata con il provisioning automatico del nodo (NAP) abilitato.

Prerequisiti

Limitazioni

Creare una rete virtuale e una subnet

Importante

Quando si utilizza una rete virtuale personalizzata con NAP (Network Access Protection), tenere a mente le informazioni seguenti:

  • È necessario creare e delegare una subnet del server API a Microsoft.ContainerService/managedClusters, che concede al servizio Azure Kubernetes le autorizzazioni per inserire i pod del server API e il servizio di bilanciamento del carico interno in tale subnet. Non è possibile usare la subnet per altri carichi di lavoro, ma è possibile usarla per più cluster del servizio Azure Kubernetes che si trovano nella stessa rete virtuale. Le dimensioni minime supportate della subnet del server API sono /28.
  • Tutto il traffico all'interno della rete virtuale è consentito per impostazione predefinita. Tuttavia, se sono state aggiunte regole del gruppo di sicurezza di rete (NSG) per limitare il traffico tra subnet diverse, è necessario assicurarsi di configurare le autorizzazioni appropriate. Per altre informazioni, vedere la documentazione del gruppo di sicurezza di rete.
  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 usando il az network vnet subnet create comando e delegarla a Microsoft.ContainerService/managedClusters.

    az network vnet subnet create \
        --resource-group $RG_NAME \
        --vnet-name $VNET_NAME \
        --name $SUBNET_NAME \
        --delegations Microsoft.ContainerService/managedClusters \
        --address-prefixes 172.19.0.0/28
    

Creare un'identità gestita e concedere le autorizzazioni per accedere alla 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. Ottenere l'identità principale dell'identità gestita e impostarla su una variabile di ambiente usando il comando [az identity show][az-identity-show].

    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 comando az role assignment create.

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

Creare un cluster del servizio Azure Kubernetes con provisioning automatico dei nodi in una rete virtuale personalizzata

  1. Creare un cluster AKS con NAP abilitato nella tua rete virtuale personalizzata usando il comando az aks create. Assicurarsi di impostare il --node-provisioning-mode flag su Auto per abilitare NAP.

    Il comando seguente imposta anche --network-plugin su azure, --network-plugin-mode su overlay e --network-dataplane su cilium. Per ulteriori informazioni sulle configurazioni di rete supportate con NAP, vedere Configurare la rete per il provisioning automatico dei nodi su 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/$CUSTOM_VNET_NAME/subnets/$SUBNET_NAME" \
        --node-provisioning-mode Auto
    

    Il comando viene completato dopo pochi minuti e vengono restituite 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: