Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Den här artikeln beskriver hur du aktiverar eller inaktiverar automatisk etablering av noder (NAP) i Azure Kubernetes Service (AKS) med hjälp av Azure CLI- eller Azure Resource Manager-mallarna (ARM).
Om du vill skapa ett NAP-aktiverat AKS-kluster med ett anpassat virtuellt nätverk (VNet) och undernät läser du Skapa ett NAP-kluster (node auto-provisioning) i ett anpassat virtuellt nätverk.
Innan du börjar
Innan du börjar kan du läsa artikeln Översikt över automatisk etablering av noder (NAP) i AKS , som beskriver hur NAP fungerar, krav och begränsningar.
Aktivera automatisk etablering av noder (NAP) i ett AKS-kluster
I följande avsnitt förklaras hur du aktiverar NAP i ett nytt eller befintligt AKS-kluster:
Anmärkning
Du kan aktivera kontrollplansmått för att se loggar och åtgärder från automatisk nodetablering med Azure Monitors hanterade tjänst för Prometheus-tillägget.
Aktivera NAP i ett nytt kluster
Aktivera automatisk nodetablering i ett nytt kluster med kommandot
az aks createmed--node-provisioning-modeflaggan inställd påAuto. Följande kommando anger--network-pluginockså tillazure,--network-plugin-modetilloverlayoch--network-dataplanetillcilium.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
Skapa en fil med namnet
nap.jsonoch lägg till följande ARM-mallkonfiguration medproperties.nodeProvisioningProfile.modefältet inställt påAuto, vilket aktiverar NAP. (Standardinställningen ärManual.){ "$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" } } } ] }Aktivera automatisk noddistribution i ett nytt kluster med kommandot
az deployment group createmed--template-file-flaggan inställd på sökvägen till ARM-mallfilen.az deployment group create --resource-group $RESOURCE_GROUP --template-file ./nap.json
Aktivera NAP i ett befintligt kluster
Aktivera automatisk nodetablering i ett befintligt kluster med kommandot
az aks updatemed--node-provisioning-modeflaggan inställd påAuto.az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --node-provisioning-mode Auto
Inaktivera automatisk etablering av noder (NAP) i ett AKS-kluster
Viktigt!
Du kan bara inaktivera NAP på ett kluster om följande villkor uppfylls:
- Det finns inga befintliga NAP-noder. Du kan använda
kubectl get nodes -l karpenter.sh/nodepoolkommandot för att söka efter befintliga NAP-hanterade noder. - Alla befintliga Karpenter
NodePoolshar derasspec.limits.cpu-fält inställt på0. Den här åtgärden förhindrar att nya noder skapas, men stör inte noder som körs för närvarande.
Ange fältet
spec.limits.cputill0för varje befintlig KarpenterNodePool. Till exempel:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: limits: cpu: 0Viktigt!
Om du inte vill se till att alla poddar som tidigare körs på en NAP-nod migreras på ett säkert sätt till en nod som inte är NAP innan du inaktiverar NAP kan du hoppa över steg 2 och 3 och i stället använda
kubectl delete nodekommandot för varje NAP-hanterad nod. Vi rekommenderar dock inte att du hoppar över de här stegen eftersom det kan göra att vissa podar ska förbli väntande och inte respekterar Pod Disruption Budgets (PDB).När du använder
kubectl delete nodekommandot bör du bara ta bort NAP-hanterade noder. Du kan identifiera NAP-hanterade noder med hjälp avkubectl get nodes -l karpenter.sh/nodepoolkommandot .Lägg till den
karpenter.azure.com/disable:NoScheduletainten till varje KarpenterNodePool. Till exempel:apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: default spec: template: spec: ... taints: - key: karpenter.azure.com/disable effect: NoScheduleDen här åtgärden startar processen att migrera arbetslaster på de NAP-hanterade noderna till icke-NAP-noder och respekterar PDB:er samt avbrottsgränser. Poddar migreras till icke-NAP-noder om de får plats. Om det inte finns tillräckligt med fast storlekkapacitet finns vissa NAP-hanterade noder kvar.
Skala upp befintliga med fast storlek
ManagedClusterAgentPoolseller skapa nya med fast storlekAgentPoolsför att hantera belastningen från NAP-hanterade noder. När dessa noder läggs till i klustret töms nodens NAP-hanterade noder och arbetet migreras till noderna med fast storlek.Ta bort alla NAP-hanterade noder med kommandot
kubectl get nodes -l karpenter.sh/nodepool. Om NAP-hanterade noder fortfarande finns saknar klustret troligen kapacitet med fast storlek. I det här fallet bör du lägga till fler noder så att de återstående arbetsbelastningarna kan migreras.
Uppdatera NAP-läget till
Manualmed hjälp avaz aks updateAzure CLI-kommandot och ha--node-provisioning-mode-flagga inställd påManual.az aks update \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --node-provisioning-mode Manual
Uppdatera fältet
properties.nodeProvisioningProfile.modetillManuali ARM-mallen och distribuera om det.{ "$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" } } } ] }
Nästa steg
Mer information om automatisk nodetablering i AKS finns i följande artiklar:
- Använda automatisk nodetablering i ett anpassat virtuellt nätverk
- Konfigurera nätverk för automatisk nodetablering i AKS
- Konfigurera nodpooler för automatisk tilldelning av noder i AKS
- Konfigurera störningsprinciper för automatisk nodtilldelning i AKS
- Uppgradera nodbilder för automatisk etablering av noder i AKS