Freigeben über


Erstellen eines Node Auto-Provisioning (NAP)-Clusters in einem benutzerdefinierten virtuellen Netzwerk in Azure Kubernetes Service (AKS)

In diesem Artikel erfahren Sie, wie Sie ein virtuelles Netzwerk (VNet) und ein Subnetz erstellen, eine verwaltete Identität mit Berechtigungen für den Zugriff auf das VNet erstellen und einen Azure Kubernetes Service (AKS)-Cluster in Ihrem benutzerdefinierten VNet erstellen, wobei die automatische Bereitstellung (Node Auto-Provisioning, NAP) aktiviert ist.

Voraussetzungen

Einschränkungen

Erstellen eines virtuellen Netzwerks und des Subnetzes

Von Bedeutung

Beachten Sie bei der Verwendung eines benutzerdefinierten VNet mit NAP die folgenden Informationen:

  • Sie müssen ein API-Server-Subnetz erstellen und an Microsoft.ContainerService/managedClusters delegieren, wodurch der AKS-Dienst Berechtigungen zum Einfügen der API-Server-Pods und des internen Lastenausgleichers in dieses Subnetz erhält. Sie können das Subnetz nicht für andere Workloads verwenden, aber Sie können es für mehrere AKS-Cluster verwenden, die sich im selben VNet befinden. Die minimale unterstützte API-Server-Subnetzgröße ist /28.
  • Der gesamte Datenverkehr innerhalb des VNet ist standardmäßig zulässig. Wenn Sie jedoch Regeln für die Netzwerksicherheitsgruppe (Network Security Group, NSG) zum Einschränken des Datenverkehrs zwischen verschiedenen Subnetzen hinzugefügt haben, müssen Sie sicherstellen, dass Sie die richtigen Berechtigungen konfigurieren. Weitere Informationen finden Sie in der Dokumentation zur Netzwerksicherheitsgruppe.
  1. Erstellen Sie ein VNet mit dem az network vnet create Befehl.

    az network vnet create \
        --name $VNET_NAME \
        --resource-group $RG_NAME \
        --location $LOCATION \
        --address-prefixes 172.19.0.0/16
    
  2. Erstellen Sie ein Subnetz mit dem az network vnet subnet create Befehl, und delegieren Sie es an 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
    

Erstellen einer verwalteten Identität und Erteilen von Berechtigungen für den Zugriff auf das VNet

  1. Erstellen Sie mithilfe des az identity create-Befehls eine verwaltete Identität.

    az identity create \
        --resource-group $RG_NAME \
        --name $IDENTITY_NAME \
        --location $LOCATION
    
  2. Rufen Sie die Prinzipal-ID der verwalteten Identität ab, und legen Sie sie mithilfe des Befehls [az identity show][az-identity-show] auf eine Umgebungsvariable fest.

    IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group $RG_NAME --name $IDENTITY_NAME --query principalId -o tsv)
    
  3. Weisen Sie die Rolle "Netzwerkmitwirkender " der verwalteten Identität mithilfe des az role assignment create Befehls zu.

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

Erstellen eines AKS-Clusters mit automatischer Knotenbereitstellung (Node Auto-Provisioning, NAP) in einem benutzerdefinierten VNet

  1. Erstellen Sie einen AKS-Cluster mit NAP, der in Ihrem benutzerdefinierten VNet aktiviert ist, mithilfe des az aks create Befehls. Stellen Sie sicher, dass Sie das --node-provisioning-mode-Flag auf Auto setzen, um NAP zu aktivieren.

    Der folgende Befehl legt außerdem den --network-plugin Wert auf azure, --network-plugin-mode auf overlayund --network-dataplane auf cilium. Weitere Informationen zu netzwerkkonfigurationen, die mit NAP unterstützt werden, finden Sie unter Konfigurieren des Netzwerks für die automatische Bereitstellung von Knoten auf 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
    

    Nach wenigen Minuten ist die Ausführung des Befehls abgeschlossen, und es werden Informationen zum Cluster im JSON-Format zurückgegeben.

  2. Mit dem Befehl kubectl können Sie az aks get-credentials für die Verbindungsherstellung mit Ihrem Kubernetes-Cluster konfigurieren. Mit diesem Befehl werden die Anmeldeinformationen heruntergeladen, und die Kubernetes-Befehlszeilenschnittstelle wird für deren Verwendung konfiguriert.

    az aks get-credentials \
        --resource-group $RG_NAME \
        --name $CLUSTER_NAME
    
  3. Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.

    kubectl get nodes
    

Nächste Schritte

Weitere Informationen zur automatischen Bereitstellung von Knoten in AKS finden Sie in den folgenden Artikeln: