Hantera nodpooler för ett kluster (AKS på Azure Stack HCI 23H2)
Gäller för: Azure Stack HCI, version 23H2
Anteckning
Information om hur du hanterar nodpooler i AKS på Azure Stack HCI 22H2 finns i Hantera nodpooler.
I AKS som aktiveras av Azure Arc grupperas noder med samma konfiguration i nodpooler. Dessa nodpooler innehåller de underliggande virtuella datorer som kör dina program. Den här artikeln visar hur du skapar och hanterar nodpooler för ett kluster i AKS Arc.
Skapa ett Kubernetes-kluster
Kom igång genom att skapa ett Kubernetes-kluster med en enda nodpool:
az aksarc create -n <cluster name> -g <resource group> --custom-location <custom location Id> --vnet-ids <vnet id> --generate-ssh-keys --load-balancer-count <load balancer count>
Lägga till en nodpool
Du kan lägga till en nodpool i ett befintligt kluster med kommandot az aksarc nodepool add
. Kontrollera att namnet på nodpoolen inte är samma namn som en befintlig nodpool:
az aksarc nodepool add --name <node pool name> -g <resource group> --cluster-name <cluster name> --os-sku <Linux or Windows> --node-count <count> --node-vm-size <vm size>
Hämta konfigurationsinformation för en nodpool
Om du vill se konfigurationen av dina nodpooler använder du az aksarc nodepool show
kommandot:
az aksarc nodepool show --cluster-name <cluster name> -n <node pool name> -g <resource group>
Exempel på utdata:
{
"availabilityZones": null,
"count": 1,
"extendedLocation": null,
"id":
"/subscriptions/<subscription>/resourceGroups/edgeci-registration-rr1s46r1710<resource
group>/providers/Microsoft.Kubernetes/connectedClusters/<cluster
name>/providers/Microsoft.HybridContainerService/provisionedClusterInstances/default/agentPools/<nodepoolname>",
"location": "westeurope",
"name": "nodepoolname",
"nodeImageVersion": null,
"osSku": "CBLMariner",
"osType": "Linux",
"provisioningState": "Succeeded",
"resourceGroup": "resourcegroup",
"status": {
"errorMessage": null,
"operationStatus": null,
"readyReplicas": [
{
"count": 1,
"vmSize": "Standard\_A4\_v2"
}
]
},
"systemData": {
…
},
"tags": null,
"type":
"microsoft.hybridcontainerservice/provisionedclusterinstances/agentpools",
"vmSize": "Standard\_A4\_v2"
}
Ange maximalt antal poddar som distribuerats till en nodpool
Du kan konfigurera maximalt antal poddar som kan distribueras till en nod när klustret skapas eller när du skapar nya nodpooler. Om du inte anger maxPods
när du skapar nodpooler distribueras nodpoolen med ett standardvärde på högst 110 poddar:
az aksarc nodepool add --cluster-name <cluster name> -n <node pool name> -g <resource group> --max-pods 50 --yes
Skala en nodpool
Du kan skala upp eller ned antalet noder i en nodpool.
Om du vill skala antalet noder i en nodpool använder du az aksarc nodepool scale
kommandot . I följande exempel skalas antalet noder till 2 i en nodpool med namnet nodepool1
:
az aksarc nodepool scale --cluster-name <cluster name> -n nodepool1 -g <resource group> --node-count 2 --yes
Ta bort en nodpool
Om du behöver ta bort en nodpool använder du az aksarc nodepool delete
kommandot:
az aksarc nodepool delete --cluster-name <cluster name> -n <node pool name> -g <resource group> --yes
Ange en taint eller etikett för en nodpool
När du skapar en nodpool kan du lägga till taints eller etiketter i den. När du lägger till en taint eller etikett får alla noder i nodpoolen också den tainten eller etiketten.
Viktigt
Du bör lägga till taints eller etiketter i noder för hela nodpoolen med hjälp av az aksarc nodepool
. Vi rekommenderar inte att du använder kubectl
för att tillämpa taints eller etiketter på enskilda noder i en nodpool.
Ange taints för nodpool
Skapa en nodpool med en taint med kommandot
az aksarc nodepool add
. Ange namnettaintnp
och använd parametern--node-taints
för att angesku=gpu:NoSchedule
för taint:az aksarc nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name taintnp \ --node-count 1 \ --node-taints sku=gpu:NoSchedule \ --no-wait
Kontrollera statusen för nodpoolen
az aksarc nodepool list
med kommandot :az aksarc nodepool list -g myResourceGroup --cluster-name myAKSCluster
Följande exempelutdata visar att nodpoolen
taintnp
skapar noder med angivnanodeTaints
:[ { ... "count": 1, ... "name": "taintnp", ... "provisioningState": "Succeeded", ... "nodeTaints": [ "sku=gpu:NoSchedule" ], ... }, ... ]
Taint-informationen visas i Kubernetes för hantering av schemaläggningsregler för noder. Kubernetes-schemaläggaren kan använda taints och toleranser för att begränsa vilka arbetsbelastningar som kan köras på noder.
- En taint tillämpas på en nod som anger att endast specifika poddar kan schemaläggas på dem.
- En tolerans tillämpas sedan på en podd som gör att de kan "tolerera" en nods taint.
Ange tolerationer för nodpooler
I föregående steg tillämpade sku=gpu:NoSchedule
du taint när du skapade nodpoolen. I följande yaml-exempelmanifest används en tolerans för att kubernetes-schemaläggaren ska kunna köra en NGINX-podd på en nod i nodpoolen:
Skapa en fil med namnet nginx-toleration.yaml och kopiera/klistra in följande exempel YAML:
apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine name: mypod resources: requests: cpu: 100m memory: 128Mi limits: cpu: 1 memory: 2G tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule"
Schemalägg podden med
kubectl apply
kommandot :kubectl apply -f nginx-toleration.yaml
Det tar några sekunder att schemalägga podden och hämta NGINX-avbildningen.
Kontrollera statusen
kubectl describe pod
med kommandot :kubectl describe pod mypod
Följande komprimerade exempelutdata visar att toleransen
sku=gpu:NoSchedule
tillämpas. I avsnittet Händelser tilldelade schemaläggaren podden tillmoc-lbeof1gn6x3
noden:[...] Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s sku=gpu:NoSchedule Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 54s default-scheduler Successfully assigned default/mypod to moc-lbeof1gn6x3 Normal Pulling 53s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" Normal Pulled 48s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" in 3.025148695s (3.025157609s including waiting) Normal Created 48s kubelet Created container Normal Started 48s kubelet Started container
Endast poddar som har den här toleransen kan schemaläggas på noder i
taintnp
. Andra poddar schemaläggs i nodepool1-nodpoolen . Om du skapar fler nodpooler kan du använda taints och toleranser för att begränsa vilka poddar som kan schemaläggas för dessa nodresurser.
Ange nodpooletiketter
Mer information finns i Använda etiketter i ett Azure Arc-aktiverat AKS-kluster. ::: zone-end
Nästa steg
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för