Skapa ett NAP-kluster (autoetablering av noder) i ett anpassat virtuellt nätverk i Azure Kubernetes Service (AKS)

Den här artikeln visar hur du skapar ett Azure Kubernetes Service (AKS) kluster med nodbaserad automatisk etablering (NAP) aktiverat i ett anpassat virtuellt nätverk (VNet). Du skapar ett virtuellt nätverk och undernät och beviljar sedan en hanterad identitet åtkomst till det virtuella nätverket.

Förutsättningar

Begränsningar

Ange miljövariabler och skapa en resursgrupp

  1. Ange de miljövariabler som används i hela den här artikeln. Ersätt platshållarvärdena med dina egna värden.

    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. Välj din Azure prenumeration med kommandot az account set .

    az account set --subscription $SUBSCRIPTION_ID
    
  3. Skapa en resursgrupp med kommandot az group create.

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

Skapa ett virtuellt nätverk och undernät

  1. Skapa ett virtuellt az network vnet create nätverk med kommandot .

    az network vnet create \
        --name $VNET_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --address-prefixes 172.19.0.0/16
    
  2. Skapa ett nodundernät med kommandot az network vnet subnet create .

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

Skapa en hanterad identitet och tilldela VNet-behörigheter

  1. Skapa en hanterad identitet med kommandot az identity create .

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. az identity show Använd kommandot för att hämta den hanterade identitetens huvud-ID och spara det i en miljövariabel.

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Tilldela rollen Nätverksdeltagare till den hanterade identiteten az role assignment create med kommandot . Parametern --assignee-principal-type förhindrar fel som orsakas av replikeringsfördröjningar när den hanterade identiteten har skapats.

    Important

    Rollen Nätverksdeltagare i VNet-omfånget ger breda behörigheter. Innan du använder den här metoden i produktion bör du granska RBAC-konfigurationen för anpassade undernätskonfigurationer och överväga att tilldela begränsade undernätsbehörigheter.

    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
    

Aktivera NAP och anslut till klustret

Använd undernätet för hanterad identitet, VNet och nod som du skapade i föregående avsnitt. Klustret måste använda en Standard Load Balancer enligt beskrivningen i Begränsningar.

  1. Skapa ett AKS-kluster med NAP aktiverat i ditt anpassade virtuella nätverk med kommandot az aks create . I följande tabell beskrivs nap- och nätverksparametrarna som används i kommandot:

    Parameter Value Description
    --node-provisioning-mode Auto Aktiverar NAP i klustret.
    --network-plugin azure Använder Azure CNI för klusternätverk.
    --network-plugin-mode overlay Använder Azure CNI-överlägg för poddnätverk.
    --network-dataplane cilium Använder dataplanet Cilium.

    Mer information finns i Översikt över nätverkskonfigurationer för automatisk etablering av noder (NAP) i 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
    

    När klustret har skapats returnerar kommandot JSON-formaterad information om klustret.

  2. Konfigurera kubectl för att ansluta till kubernetes-klustret med hjälp av az aks get-credentials kommandot . Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Kontrollera anslutningen till klustret med hjälp av kubectl get kommandot . Det här kommandot returnerar en lista över klusternoderna.

    kubectl get nodes
    

Nästa steg

Mer information om automatisk nodetablering i AKS finns i följande artiklar: