Zarządzanie pulami węzłów dla klastra (AKS na Azure Local 22H2)
Dotyczy: AKS na Azure Local 22H2, AKS na Windows Server
Uwaga
Aby uzyskać informacje na temat zarządzania pulami węzłów w AKS na platformie Azure Local 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ą grupowane razem w pule węzłów. Te pule węzłów zawierają bazowe maszyny wirtualne, na których są uruchamiane 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 są wymagane 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 musisz zaktualizować program PowerShell, wykonaj instrukcje opisane w temacie Uaktualnianie hosta usługi AKS.
Tworzenie klastra AKS
Aby rozpocząć, 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ż klaster wdrożony 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 dowolna 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 wyjście:
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 wyjście:
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 wyjście:
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 programie New-AksHciCluster
do wdrożenia klastra, a następnie uruchom polecenie Get-AksHciCluster
, aby uzyskać informacje o klastrze, pola WindowsNodeCount
i LinuxNodeCount
dane wyjściowe będą zwracać wartość 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.
Może być konieczne skalowanie węzłów płaszczyzny sterowania w miarę zmiany zapotrzebowania na obciążenie aplikacji. 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 defektu dla puli węzłów
Podczas tworzenia puli węzłów można dodać do tej puli węzłów defekty. Po dodaniu defektu wszystkie węzły w tej puli węzłów również uzyskają ten błąd. Aby uzyskać więcej informacji na temat defektów i tolerancji, zobacz Kubernetes Taints i Tolerations.
Ustawianie parametrów puli węzłów
Aby utworzyć pulę węzłów z defektem, użyj polecenia New-AksHciNodePool. Określ nazwę taintnp
, a następnie użyj parametru -taints
, aby określić sku=gpu:noSchedule
parametr dla parametru .
New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule
Uwaga
Parametr 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 defektu.
Get-AksHciNodePool -clusterName mycluster -name taintnp
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