Zarządzanie pulami węzłów dla klastra (AKS w usłudze Azure Stack HCI 22H2)
Dotyczy: usługa AKS w usłudze Azure Stack HCI 22H2, AKS w systemie Windows Server
Uwaga
Aby uzyskać informacje na temat zarządzania pulami węzłów w usłudze AKS w usłudze Azure Stack HCI 23H2, 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.
Uwaga
Ta funkcja umożliwia większą kontrolę nad tworzeniem wielu pul węzłów i zarządzaniem nimi. W związku z tym do operacji tworzenia, aktualizowania i usuwania wymagane są oddzielne polecenia. Wcześniej operacje klastra za pomocą polecenia New-AksHciCluster lub Set-AksHciCluster były jedyną opcją tworzenia lub skalowania klastra z jedną pulą węzłów systemu Windows i jedną pulą węzłów systemu Linux. Ta funkcja uwidacznia oddzielny zestaw operacji dla pul węzłów, które wymagają użycia poleceń puli węzłów New-AksHciNodePool, Set-AksHciNodePool, Get-AksHciNodePool i Remove-AksHciNodePool do wykonywania operacji w pojedynczej puli węzłów.
Zanim rozpoczniesz
Zalecamy zainstalowanie wersji 1.1.6. Jeśli masz już zainstalowany moduł programu PowerShell, uruchom następujące polecenie, aby znaleźć wersję:
Get-Command -Module AksHci
Jeśli chcesz zaktualizować program PowerShell, wykonaj instrukcje opisane w temacie Uaktualnianie hosta usługi AKS.
Tworzenie klastra AKS
Aby rozpocząć pracę, utwórz klaster usługi AKS z jedną pulą węzłów. W poniższym przykładzie użyto polecenia New-AksHciCluster , aby utworzyć nowy klaster Kubernetes z jedną pulą węzłów systemu Linux o nazwie linuxnodepool, która ma 1 węzeł. Jeśli masz już wdrożony klaster ze starszą wersją usługi AKS i chcesz kontynuować korzystanie ze starego wdrożenia, możesz pominąć ten krok. Nadal możesz użyć nowego zestawu poleceń puli węzłów, aby dodać więcej puli węzłów do istniejącego klastra.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux
Uwaga
Stary zestaw parametrów dla New-AksHciCluster
programu jest nadal obsługiwany.
Dodawanie puli węzłów
Klaster o nazwie mycluster
*', utworzony w poprzednim kroku, ma jedną pulę węzłów. Drugą pulę węzłów można dodać do istniejącego klastra przy użyciu polecenia New-AksHciNodePool . Poniższy przykład tworzy pulę węzłów systemu Windows o nazwie windowsnodepool z jednym węzłem. Upewnij się, że nazwa puli węzłów nie jest taka sama jak żadna istniejąca pula węzłów.
New-AksHciNodePool -clusterName mycluster -name windowsnodepool -count 1 -osType Windows -osSku Windows2022
Pobieranie informacji o konfiguracji puli węzłów
Aby wyświetlić informacje o konfiguracji pul węzłów, użyj polecenia Get-AksHciNodePool .
Get-AksHciNodePool -clusterName mycluster
Przykładowe dane wyjściowe:
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Aby wyświetlić informacje o konfiguracji jednej konkretnej puli węzłów, użyj parametru -name
get-AksHciNodePool.
Get-AksHciNodePool -clusterName mycluster -name linuxnodepool
Przykładowe dane wyjściowe:
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Get-AksHciNodePool -clusterName mycluster -name windowsnodepool
Przykładowe dane wyjściowe:
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Uwaga
Jeśli używasz nowych zestawów parametrów w New-AksHciCluster
programie do wdrożenia klastra, a następnie uruchom polecenie Get-AksHciCluster
, aby uzyskać informacje o klastrze, pola WindowsNodeCount
i LinuxNodeCount
dane wyjściowe zostaną zwrócone 0
. Aby uzyskać dokładną liczbę węzłów w każdej puli węzłów, użyj polecenia Get-AksHciNodePool
o określonej nazwie klastra.
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 polecenia Set-AksHciNodePool . Poniższy przykład skaluje liczbę węzłów do 3 w puli węzłów o nazwie linuxnodepool
w klastrze mycluster
.
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Skalowanie węzłów płaszczyzny sterowania
Zarządzanie węzłami płaszczyzny sterowania nie uległo zmianie. Sposób ich tworzenia, skalowania i usuwania pozostaje taki sam. Węzły płaszczyzny sterowania będą nadal wdrażane za pomocą polecenia New-AksHciCluster z parametrami controlPlaneNodeCount
i controlPlaneVmSize
wartościami domyślnymi odpowiednio 1 i Standard_A4_V2, jeśli nie podasz żadnych wartości.
W miarę zmiany zapotrzebowania na obciążenie aplikacji może być konieczne skalowanie węzłów płaszczyzny sterowania. Aby skalować węzły płaszczyzny sterowania, użyj polecenia Set-AksHciCluster . Poniższy przykład skaluje węzły płaszczyzny sterowania do 3 w mycluster
klastrze, który został utworzony w poprzednich krokach.
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
Usuwanie puli węzłów
Jeśli musisz usunąć pulę węzłów, użyj polecenia Remove-AksHciNodePool . Poniższy przykład usuwa pulę węzłów o nazwie windowsnodepool
z klastra mycluster
.
Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool
Określanie taint dla puli węzłów
Podczas tworzenia puli węzłów można dodawać do tej puli węzłów te elementy. Po dodaniu parametru taint wszystkie węzły w tej puli węzłów również uzyskają ten błąd. Aby uzyskać więcej informacji na temat taints i tolerancji, zobacz Kubernetes Taints and Tolerations (Tolerancje i tolerancje kubernetes).
Ustawianie parametrów puli węzłów
Aby utworzyć pulę węzłów za pomocą narzędzia taint, użyj polecenia New-AksHciNodePool. Określ nazwę taintnp
i użyj parametru -taints
, aby określić sku=gpu:noSchedule
dla parametru taint.
New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule
Uwaga
Taint można ustawić tylko dla pul węzłów podczas tworzenia puli węzłów.
Uruchom następujące polecenie, aby upewnić się, że pula węzłów została pomyślnie wdrożona przy użyciu określonego identyfikatora.
Get-AksHciNodePool -clusterName mycluster -name taintnp
Dane wyjściowe
Status : {Phase, Details}
ClusterName : mycluster
NodePoolName : taintnp
Version : v1.20.7-kvapkg.1
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Taints : {sku=gpu:NoSchedule}
W poprzednim kroku zastosowano metodę sku=gpu:NoSchedule taint podczas tworzenia puli węzłów. Poniższy podstawowy 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 informacje w poniższym tekście.
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"
Następnie zaplanuj zasobnik przy użyciu następującego polecenia.
kubectl apply -f nginx-toleration.yaml
Aby sprawdzić, czy zasobnik został wdrożony, uruchom następujące polecenie:
kubectl describe pod mypod
[...]
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 32s default-scheduler Successfully assigned default/mypod to moc-lk4iodl7h2y
Normal Pulling 30s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
Normal Pulled 26s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" in 4.529046457s
Normal Created 26s kubelet Created container mypod