Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Subskrypcja platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto.
- Wersja Azure CLI
2.76.0lub nowsza. Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenieaz --version. Aby uzyskać więcej informacji na temat instalowania lub uaktualniania interfejsu wiersza polecenia platformy Azure, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Środowisko powłoki Bash, takie jak Azure Cloud Shell. Jeśli uruchomisz polecenia lokalnie, zaloguj się przy użyciu
az loginpolecenia . - Klient wiersza polecenia kubernetes,
kubectl.kubectlprogram jest już zainstalowany w Azure Cloud Shell. Aby zainstalować ją lokalnie, użyjaz aks install-clipolecenia . -
Microsoft.Authorization/roleAssignments/writeuprawnienia, takie jak rola administrator Access Control oparta na rolach, aby przypisać rolę Współautor sieci. - Znajomość pojęć opisanych w temacie Omówienie automatycznej aprowizacji węzłów (NAP) w usłudze AKS i Omówienie konfiguracji sieci dla automatycznego aprowizowania węzłów (NAP) w Azure Kubernetes Service (AKS).
Ograniczenia
- Podczas tworzenia klastra NAP w niestandardowej sieci wirtualnej (VNet) należy użyć usługi usługa Load Balancer w warstwie Standardowa. Podstawowy moduł równoważenia obciążenia nie jest obsługiwany.
- Aby przejrzeć inne ograniczenia i nieobsługiwane funkcje NAP, zobacz artykuł: Omówienie automatycznego aprowizowania węzłów (NAP) w usłudze AKS.
Ustawianie zmiennych środowiskowych i tworzenie grupy zasobów
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>"Wybierz subskrypcję Azure przy użyciu
az account setpolecenia .az account set --subscription $SUBSCRIPTION_IDUtwórz grupę zasobów przy użyciu polecenia
az group create.az group create \ --name $RG_NAME \ --location $LOCATION
Tworzenie sieci wirtualnej i podsieci
Utwórz sieć wirtualną przy użyciu
az network vnet createpolecenia .az network vnet create \ --name $VNET_NAME \ --resource-group $RG_NAME \ --location $LOCATION \ --address-prefixes 172.19.0.0/16Utwórz podsieć węzła
az network vnet subnet createprzy 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
Utwórz tożsamość zarządzaną przy użyciu
az identity createpolecenia .az identity create \ --resource-group $RG_NAME \ --name $IDENTITY_NAME \ --location $LOCATIONaz identity showUż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)Przypisz rolę Współautor sieci do tożsamości zarządzanej
az role assignment createprzy użyciu polecenia . Parametr--assignee-principal-typezapobiega 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.
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-modeAutoWłącza ochrony dostępu do sieci w klastrze. --network-pluginazureUżywa Azure CNI dla sieci klastra. --network-plugin-modeoverlayUżywa Azure nakładki CNI dla sieci zasobników. --network-dataplaneciliumUż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-keysPo zakończeniu tworzenia klastra polecenie zwraca informacje w formacie JSON dotyczące klastra.
Skonfiguruj
kubectl, aby nawiązać połączenie z klastrem Kubernetes za pomocą poleceniaaz 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_NAMEZweryfikuj 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: