Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
- Una sottoscrizione di Azure. Se non ne hai uno, puoi creare un account gratuito.
- Versione
2.76.0o successiva della CLI di Azure. Per trovare la versione, eseguireaz --version. Per altre informazioni sull'installazione o l'aggiornamento dell'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure. - Un ambiente Bash, ad esempio Azure Cloud Shell. Se si eseguono i comandi in locale, accedere usando il
az logincomando . - Client della riga di comando kubernetes,
kubectl.kubectlè già installato in Azure Cloud Shell. Per installarlo in locale, usare ilaz aks install-clicomando . -
Microsoft.Authorization/roleAssignments/writeautorizzazione, ad esempio il ruolo Amministratore Controllo di accesso basato su ruoli, per assegnare il ruolo Collaboratore rete. - Familiarità con i concetti descritti in Panoramica del provisioning automatico dei nodi in Servizio Azure Kubernetes e Panoramica delle configurazioni di rete per il provisioning automatico dei nodi in Servizio Azure Kubernetes (AKS).
Limitazioni
- Quando si crea un cluster NAP in una rete virtuale personalizzata (VNet), è necessario utilizzare un Load Balancer Standard. Load Balancer Basic non è supportato.
- Per esaminare altre limitazioni e funzionalità non supportate NAP, vedere l'articolo Panoramica del provisioning automatico dei nodi (NAP) nel servizio Azure Kubernetes (AKS).
Impostare le variabili di ambiente e creare un gruppo di risorse
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>"Selezionare la sottoscrizione Azure usando il
az account setcomando .az account set --subscription $SUBSCRIPTION_IDCreare 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
Creare una rete virtuale usando il
az network vnet createcomando .az network vnet create \ --name $VNET_NAME \ --resource-group $RG_NAME \ --location $LOCATION \ --address-prefixes 172.19.0.0/16Creare una subnet del nodo usando il
az network vnet subnet createcomando .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
Creare un'identità gestita usando il comando
az identity create.az identity create \ --resource-group $RG_NAME \ --name $IDENTITY_NAME \ --location $LOCATIONUsare il
az identity showcomando 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)Assegnare il ruolo Collaboratore rete all'identità gestita usando il
az role assignment createcomando . Il--assignee-principal-typeparametro 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.
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-modeAutoAbilita Protezione accesso alla rete nel cluster. --network-pluginazureUsa Azure CNI per la rete del cluster. --network-plugin-modeoverlayUsa Azure overlay CNI per la rete dei pod. --network-dataplaneciliumUsa 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-keysAl termine della creazione del cluster, il comando restituisce informazioni in formato JSON sul cluster.
Configurare
kubectlper connettersi al cluster Kubernetes usando il comandoaz 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_NAMEVerificare 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: