Tworzenie klastra automatycznego aprowizowania węzłów (NAP) w niestandardowej sieci wirtualnej w usłudze Azure Kubernetes Service (AKS)

W tym artykule pokazano, jak utworzyć klaster Azure Kubernetes Service (AKS) z włączoną automatyczną aprowizowaniem węzłów (NAP) w niestandardowej sieci wirtualnej. Utworzysz sieć wirtualną i podsieć, a następnie przyznasz tożsamości zarządzanej dostęp do sieci wirtualnej.

Wymagania wstępne

Ograniczenia

Ustawianie zmiennych środowiskowych i tworzenie grupy zasobów

  1. Ustaw zmienne środowiskowe używane w tym artykule. Zastąp zastępcze wartości własnymi wartościami.

    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. Wybierz subskrypcję Azure przy użyciu az account set polecenia .

    az account set --subscription $SUBSCRIPTION_ID
    
  3. Utwórz grupę zasobów przy użyciu polecenia az group create.

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

Tworzenie sieci wirtualnej i podsieci

  1. Utwórz sieć wirtualną przy użyciu az network vnet create polecenia .

    az network vnet create \
        --name $VNET_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --address-prefixes 172.19.0.0/16
    
  2. Utwórz podsieć węzła az network vnet subnet create przy użyciu polecenia .

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

Tworzenie tożsamości zarządzanej i przypisywanie uprawnień sieci wirtualnej

  1. Utwórz tożsamość zarządzaną przy użyciu az identity create polecenia .

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. az identity show Użyj polecenia , aby uzyskać identyfikator podmiotu zabezpieczeń tożsamości zarządzanej i zapisać go w zmiennej środowiskowej.

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Przypisz rolę Współautor sieci do tożsamości zarządzanej az role assignment create przy użyciu polecenia . Parametr --assignee-principal-type zapobiega awariom spowodowanym opóźnieniami replikacji po utworzeniu tożsamości zarządzanej.

    Ważna

    Rola Współautor sieci w zakresie sieci wirtualnej przyznaje szerokie uprawnienia. Przed użyciem tego podejścia w środowisku produkcyjnym zapoznaj się z konfiguracją kontroli dostępu opartej na rolach dla niestandardowych konfiguracji podsieci i rozważ przypisanie uprawnień podsieci o określonym zakresie.

    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
    

Włączanie ochrony dostępu do sieci i nawiązywanie połączenia z klastrem

Użyj tożsamości zarządzanej, sieci wirtualnej i podsieci węzłów utworzonej w poprzednich sekcjach. Klaster musi używać usługa Load Balancer w warstwie Standardowa zgodnie z opisem w temacie Ograniczenia.

  1. Utwórz klaster usługi AKS z włączoną funkcją Network Access Protection (NAP) w swojej niestandardowej sieci wirtualnej przy użyciu polecenia az aks create. W poniższej tabeli opisano parametry ochrony dostępu do sieci i sieci używane w poleceniu :

    Parameter Value Description
    --node-provisioning-mode Auto Włącza ochrony dostępu do sieci w klastrze.
    --network-plugin azure Używa Azure CNI dla sieci klastra.
    --network-plugin-mode overlay Używa Azure nakładki CNI dla sieci zasobników.
    --network-dataplane cilium Używa płaszczyzny danych Cilium.

    Aby uzyskać więcej informacji, zobacz Omówienie konfiguracji sieci na potrzeby automatycznej aprowizacji węzłów (NAP) w 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
    

    Po zakończeniu tworzenia klastra polecenie zwraca informacje w formacie JSON dotyczące klastra.

  2. Skonfiguruj kubectl, aby nawiązać połączenie z klastrem Kubernetes za pomocą polecenia az aks get-credentials. To polecenie pobiera poświadczenia i konfiguruje Kubernetes CLI do ich użycia.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Zweryfikuj połączenie z klastrem, używając polecenia kubectl get. Ta komenda zwraca listę węzłów klastra.

    kubectl get nodes
    

Dalsze kroki

Aby uzyskać więcej informacji o automatycznym aprowizowaniu węzłów w AKS, zobacz następujące artykuły: