Zarządzanie pulami węzłów dla klastra (AKS w usłudze Azure Stack HCI 23H2)
Dotyczy: Azure Stack HCI, wersja 23H2
Uwaga
Aby uzyskać informacje na temat zarządzania pulami węzłów w usłudze AKS w usłudze Azure Stack HCI 22H2, zobacz Zarządzanie pulami węzłów.
W usłudze AKS włączonej przez usługę Azure Arc węzły tej samej konfiguracji są zgrupowane razem w pule węzłów. Te pule węzłów zawierają bazowe maszyny wirtualne, które uruchamiają aplikacje. W tym artykule przedstawiono sposób tworzenia pul węzłów dla klastra i zarządzania nimi w usłudze AKS Arc.
Tworzenie klastra Kubernetes
Aby rozpocząć pracę, utwórz klaster Kubernetes z jedną pulą węzłów:
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>
Dodawanie puli węzłów
Pulę węzłów można dodać do istniejącego klastra przy użyciu az aksarc nodepool add
polecenia . Upewnij się, że nazwa puli węzłów nie jest taka sama jak istniejąca pula węzłów:
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>
Pobieranie informacji o konfiguracji dla puli węzłów
Aby wyświetlić konfigurację pul węzłów, użyj az aksarc nodepool show
polecenia :
az aksarc nodepool show --cluster-name <cluster name> -n <node pool name> -g <resource group>
Przykładowe dane wyjściowe:
{
"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"
}
Określanie maksymalnych zasobników wdrożonych w puli węzłów
Można skonfigurować maksymalną liczbę zasobników wdrażanych w węźle w czasie tworzenia klastra lub podczas tworzenia nowych pul węzłów. Jeśli nie określisz maxPods
podczas tworzenia pul węzłów, pula węzłów zostanie wdrożona z wartością domyślną maksymalnie 110 zasobników:
az aksarc nodepool add --cluster-name <cluster name> -n <node pool name> -g <resource group> --max-pods 50 --yes
Skalowanie puli węzłów
Liczbę węzłów można skalować w górę lub w dół w puli węzłów.
Aby skalować liczbę węzłów w puli węzłów, użyj az aksarc nodepool scale
polecenia . Poniższy przykład skaluje liczbę węzłów do 2 w puli węzłów o nazwie nodepool1
:
az aksarc nodepool scale --cluster-name <cluster name> -n nodepool1 -g <resource group> --node-count 2 --yes
Usuwanie puli węzłów
Jeśli musisz usunąć pulę węzłów, użyj az aksarc nodepool delete
polecenia :
az aksarc nodepool delete --cluster-name <cluster name> -n <node pool name> -g <resource group> --yes
Określanie etykiety lub taint dla puli węzłów
Podczas tworzenia puli węzłów można dodawać do niej znaki lub etykiety. Po dodaniu etykiety lub taint wszystkie węzły w tej puli węzłów również uzyskają ten znak lub etykietę.
Ważne
Należy dodać znaki lub etykiety do węzłów dla całej puli węzłów przy użyciu polecenia az aksarc nodepool
. Nie zalecamy używania do kubectl
stosowania taints lub etykiet do poszczególnych węzłów w puli węzłów.
Ustawianie parametrów puli węzłów
Utwórz pulę węzłów za pomocą
az aksarc nodepool add
polecenia taint. Określ nazwętaintnp
i użyj parametru--node-taints
, aby określićsku=gpu:NoSchedule
dla parametru taint:az aksarc nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name taintnp \ --node-count 1 \ --node-taints sku=gpu:NoSchedule \ --no-wait
Sprawdź stan puli węzłów przy użyciu
az aksarc nodepool list
polecenia :az aksarc nodepool list -g myResourceGroup --cluster-name myAKSCluster
Poniższe przykładowe dane wyjściowe pokazują, że
taintnp
pula węzłów tworzy węzły o określonej wartościnodeTaints
:[ { ... "count": 1, ... "name": "taintnp", ... "provisioningState": "Succeeded", ... "nodeTaints": [ "sku=gpu:NoSchedule" ], ... }, ... ]
Informacje o taint są widoczne na platformie Kubernetes do obsługi reguł planowania dla węzłów. Harmonogram Kubernetes może używać taints i tolerancji, aby ograniczyć obciążenia, które mogą być uruchamiane w węzłach.
- Taint jest stosowany do węzła, który wskazuje, że na nich można zaplanować tylko określone zasobniki.
- Tolerancja jest następnie stosowana do zasobnika, który pozwala im "tolerować" drzemienie węzła.
Ustawianie tolerancji puli węzłów
W poprzednim kroku zastosowano sku=gpu:NoSchedule
taint podczas tworzenia puli węzłów. Poniższy przykładowy manifest YAML używa tolerancji, aby umożliwić harmonogramowi Kubernetes uruchamianie zasobnika NGINX w węźle w tej puli węzłów:
Utwórz plik o nazwie nginx-toleration.yaml i skopiuj/wklej następujący przykład 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"
Zaplanuj zasobnik przy użyciu
kubectl apply
polecenia :kubectl apply -f nginx-toleration.yaml
Zaplanowanie zasobnika i ściągnięcie obrazu NGINX zajmuje kilka sekund.
Sprawdź stan przy użyciu
kubectl describe pod
polecenia :kubectl describe pod mypod
Poniższe skrócone przykładowe dane wyjściowe pokazują, że tolerancja
sku=gpu:NoSchedule
jest stosowana. W sekcji Zdarzenia harmonogram przypisał zasobnik do węzłamoc-lbeof1gn6x3
:[...] 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
W węzłach w programie
taintnp
można zaplanować tylko zasobniki, które mają tę tolerancję. Wszystkie inne zasobniki są zaplanowane w puli węzłów nodepool1 . Jeśli tworzysz więcej pul węzłów, możesz użyć taints i tolerancji, aby ograniczyć harmonogram zasobników w tych zasobach węzłów.
Ustawianie etykiet puli węzłów
Aby uzyskać więcej informacji, zobacz Używanie etykiet w klastrze usługi AKS z obsługą usługi Azure Arc. ::: zone-end
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla