Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule wyjaśniono, jak włączyć lub wyłączyć automatyczne aprowizowanie węzłów (NAP) w usłudze Azure Kubernetes Service (AKS) przy użyciu interfejsu wiersza polecenia platformy Azure lub szablonów usługi Azure Resource Manager (ARM).
Jeśli chcesz utworzyć klaster AKS z mechanizmem automatycznego aprowizowania węzłów (NAP) oraz niestandardową siecią wirtualną (VNet) i podsieciami, zobacz Tworzenie klastra z automatycznym aprowizowaniem węzłów w niestandardowej sieci wirtualnej.
Zanim rozpoczniesz
Przed rozpoczęciem zapoznaj się z artykułem Omówienie automatycznej aprowizacji węzłów (NAP) w AKS, który zawiera szczegółowe informacje na temat działania NAP, wymagań wstępnych i ograniczeń.
Włącz automatyczne aprovisionowanie węzłów (NAP) w klastrze usługi AKS
W poniższych sekcjach opisano sposób włączania ochrony dostępu do sieci (NAP) w nowym lub istniejącym klastrze AKS.
Uwaga / Notatka
Metryki płaszczyzny sterowania umożliwiają wyświetlanie dzienników i operacji z automatycznego aprowizowania węzła za pomocą usługi zarządzanej Azure Monitor dla dodatku Prometheus.
Włącz NAP w nowym klastrze
Włącz automatyczne aprowizowanie węzłów w nowym klastrze przy użyciu polecenia
az aks createz flagą--node-provisioning-modeustawioną naAuto. Następujące polecenie ustawia również wartość--network-pluginnaazure,--network-plugin-modenaoverlay, i--network-dataplanenacilium.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Auto \ --network-plugin azure \ --network-plugin-mode overlay \ --network-dataplane cilium \ --generate-ssh-keys
Utwórz plik o nazwie
nap.jsoni dodaj następującą konfigurację szablonu ARM z polemproperties.nodeProvisioningProfile.modeustawionym naAuto, co umożliwia NAP. (Ustawieniem domyślnym jestManual.){ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Auto" } } } ] }Włącz automatyczne przydzielanie węzłów w nowym klastrze, używając polecenia
az deployment group createz flagą--template-file, ustawioną na ścieżkę do pliku szablonu ARM.az deployment group create --resource-group $RESOURCE_GROUP --template-file ./nap.json
Włącz NAP w istniejącym klastrze
Włącz automatyczne aprowizowanie węzłów w istniejącym klastrze przy użyciu
az aks updatepolecenia z flagą ustawioną na--node-provisioning-modeAuto.az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto
Wyłączanie automatycznego prowizjonowania węzłów (NAP) w klastrze usługi AKS
Ważne
Możesz wyłączyć NAP w ramach klastra tylko wtedy, gdy spełnione są następujące warunki:
- Brak istniejących węzłów NAP. Możesz użyć polecenia
kubectl get nodes -l karpenter.sh/nodepool, aby sprawdzić, czy istnieją węzły zarządzane przez NAP. - Wszystkie istniejące Karpenter
NodePoolsmają swojespec.limits.cpupole ustawione na0. Ta akcja uniemożliwia tworzenie nowych węzłów, ale nie zakłóca obecnie uruchomionych węzłów.
Ustaw pole
spec.limits.cpuna0dla każdego istniejącego KarpenterNodePool. Przykład:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: limits: cpu: 0Ważne
Jeśli nie chcesz upewniać się, że każdy pod uruchomiony wcześniej w węźle NAP jest bezpiecznie migrowany do węzła nienależącego do NAP przed jego wyłączeniem, możesz pominąć kroki 2 i 3, a zamiast tego użyć polecenia
kubectl delete nodedla każdego węzła zarządzanego przez NAP. Nie zalecamy jednak pomijania tych kroków, ponieważ może to spowodować pozostawienie niektórych zasobników oczekujących i nie uwzględnia budżetów zakłóceń zasobników (PDB).W przypadku korzystania z polecenia
kubectl delete nodenależy zachować ostrożność, aby usunąć tylko węzły zarządzane przez NAP. Węzły zarządzane przez usługę NAP można zidentyfikować przy użyciu poleceniakubectl get nodes -l karpenter.sh/nodepool.karpenter.azure.com/disable:NoScheduleDodaj defekt do każdego KarpenteraNodePool. Przykład:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: template: spec: ... taints: - key: karpenter.azure.com/disable effect: NoScheduleTa akcja rozpoczyna proces migracji obciążeń w węzłach zarządzanych przez usługę OCHRONY dostępu do sieci do węzłów innych niż NAP, honorując pliki PDB i limity zakłóceń. Zasobniki są migrowane do węzłów innych niż NAP, jeśli można je dopasować. Jeśli nie ma wystarczającej pojemności o stałym rozmiarze, niektóre węzły zarządzane przez serwer ochrony dostępu do sieci pozostaną.
Zwiększ skalę istniejących stałych rozmiarów
ManagedClusterAgentPoolslub utwórz nowy stały rozmiarAgentPools, aby przejąć obciążenie z zarządzanych przez NAP węzłów. W miarę dodawania tych węzłów do klastra węzły zarządzane przez moduł ochrony dostępu do sieci są opróżniane i praca jest migrowana do węzłów o stałym rozmiarze.Usuń wszystkie węzły zarządzane przez NAP przy użyciu polecenia
kubectl get nodes -l karpenter.sh/nodepool. Jeśli węzły zarządzane przez NAP nadal istnieją, prawdopodobnie klaster nie ma wystarczającej pojemności stałej wielkości. W takim przypadku należy dodać więcej węzłów, aby można było migrować wszystkie pozostałe zadania.
Zaktualizuj tryb NAP do
Manualprzy użyciu polecenia Azure CLIaz aks updatez flagą--node-provisioning-modeustawioną naManual.az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Manual
Zaktualizuj pole na
Manualw szablonie ARM i wdróż je ponownie.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": {}, "parameters": {}, "resources": [ { "type": "Microsoft.ContainerService/managedClusters", "apiVersion": "2025-05-01", "sku": { "name": "Base", "tier": "Standard" }, "name": "napcluster", "location": "uksouth", "identity": { "type": "SystemAssigned" }, "properties": { "networkProfile": { "networkPlugin": "azure", "networkPluginMode": "overlay", "networkPolicy": "cilium", "networkDataplane":"cilium", "loadBalancerSku": "Standard" }, "dnsPrefix": "napcluster", "agentPoolProfiles": [ { "name": "agentpool", "count": 3, "vmSize": "standard_d2s_v3", "osType": "Linux", "mode": "System" } ], "nodeProvisioningProfile": { "mode": "Manual" } } } ] }
Dalsze kroki
Aby uzyskać więcej informacji o automatycznym aprowizowaniu węzłów w AKS, zobacz następujące artykuły:
- Używanie automatycznej aprowizacji węzłów w niestandardowej sieci wirtualnej
- Konfigurowanie sieci na potrzeby automatycznej aprowizacji węzłów w usłudze AKS
- Konfigurowanie pul węzłów na potrzeby automatycznej aprowizacji węzłów w usłudze AKS
- Konfigurowanie zasad zakłóceń na potrzeby automatycznej aprowizacji węzłów w usłudze AKS
- Aktualizacja obrazów węzłów dla automatycznej aprowizacji węzłów w AKS