Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: AKS unter Windows Server
Hinweis
Informationen zum Verwalten von Knotenpools in AKS in Azure Local finden Sie unter Verwalten von Knotenpools.
In AKS unter Windows Server werden Knoten derselben Konfiguration in Knotenpools gruppiert. Diese Knotenpools enthalten die zugrunde liegenden virtuellen Computer, die Ihre Anwendungen ausführen. In diesem Artikel erfahren Sie, wie Sie Knotenpools für einen Cluster in AKS Arc erstellen und verwalten.
Hinweis
Dieses Feature ermöglicht eine bessere Kontrolle über das Erstellen und Verwalten mehrerer Knotenpools. Daher sind separate Befehle für Erstellungs-, Aktualisierungs- und Löschvorgänge erforderlich. Bisher waren Clustervorgänge über New-AksHciCluster oder Set-AksHciCluster die einzige Option zum Erstellen oder Skalieren eines Clusters mit einem Windows-Knotenpool und einem Linux-Knotenpool. Dieses Feature bietet einen separaten Satz mit Vorgängen für Knotenpools, für die die Knotenpoolbefehle New-AksHciNodePool, Set-AksHciNodePool, Get-AksHciNodePool und Remove-AksHciNodePool verwendet werden müssen, um Vorgänge für einen einzelnen Knotenpool auszuführen.
Bevor Sie beginnen
Es wird empfohlen, Version 1.1.6 zu installieren. Wenn Sie das PowerShell-Modul bereits installiert haben, führen Sie den folgenden Befehl aus, um die Version zu finden:
Get-Command -Module AksHci
Wenn Sie PowerShell aktualisieren müssen, folgen Sie den Anweisungen im Upgrade des AKS-Hosts.
Erstellen eines AKS-Clusters
Erstellen Sie zu Beginn einen AKS-Cluster mit einem einzelnen Knotenpool. Im folgenden Beispiel wird der Befehl "New-AksHciCluster " verwendet, um einen neuen Kubernetes-Cluster mit einem Linux-Knotenpool namens "linuxnodepool" zu erstellen, der über 1 Knoten verfügt. Wenn Sie bereits einen Cluster mit einer älteren Version von AKS bereitgestellt haben und Ihre alte Bereitstellung weiterhin verwenden möchten, können Sie diesen Schritt überspringen. Sie können den neuen Satz von Knotenpoolbefehlen weiterhin verwenden, um Ihrem vorhandenen Cluster weitere Knotenpools hinzuzufügen.
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux
Hinweis
Der alte Parametersatz New-AksHciCluster wird weiterhin unterstützt.
Hinzufügen eines Knotenpools
Der Cluster mit dem Namen mycluster*', der im vorherigen Schritt erstellt wurde, verfügt über einen einzelnen Knotenpool. Sie können dem vorhandenen Cluster über den Befehl New-AksHciNodePool einen zweiten Knotenpool hinzufügen. Im folgenden Beispiel wird ein Windows-Knotenpool mit dem Namen "windowsnodepool " mit einem Knoten erstellt. Stellen Sie sicher, dass der Name des Knotenpools nicht derselbe Name wie ein vorhandener Knotenpool ist.
New-AksHciNodePool -clusterName mycluster -name windowsnodepool -count 1 -osType Windows -osSku Windows2022
Abrufen von Konfigurationsinformationen für einen Knotenpool
Verwenden Sie den Befehl Get-AksHciNodePool, um die Konfigurationsinformationen Ihrer Knotenpools anzuzeigen.
Get-AksHciNodePool -clusterName mycluster
Beispielausgabe:
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
Um die Konfigurationsinformationen eines bestimmten Knotenpools anzuzeigen, verwenden Sie den -name Parameter in "Get-AksHciNodePool".
Get-AksHciNodePool -clusterName mycluster -name linuxnodepool
Beispielausgabe:
ClusterName : mycluster
NodePoolName : linuxnodepool
Version : v1.20.7
OsType : Linux
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Get-AksHciNodePool -clusterName mycluster -name windowsnodepool
Beispielausgabe:
ClusterName : mycluster
NodePoolName : windowsnodepool
Version : v1.20.7
OsType : Windows
NodeCount : 1
VmSize : Standard_K8S3_v1
Phase : Deployed
Hinweis
Wenn Sie die neuen Parameter in New-AksHciCluster zum Bereitstellen eines Clusters verwenden und dann Get-AksHciCluster ausführen, um die Clusterinformationen abzurufen, wird in den Feldern WindowsNodeCount und LinuxNodeCount in der Ausgabe 0 zurückgegeben. Um die genaue Anzahl von Knoten in jedem Knotenpool abzurufen, verwenden Sie den Befehl Get-AksHciNodePool mit dem angegebenen Clusternamen.
Skalieren eines Knotenpools
Sie können die Anzahl von Knoten in einem Knotenpool hoch- oder herunterskalieren.
Verwenden Sie zum Skalieren der Knotenanzahl in einem Knotenpool den Befehl Set-AksHciNodePool. Im folgenden Beispiel wird die Anzahl der Knoten in einem Knotenpool namens linuxnodepool im mycluster-Cluster auf 3 skaliert.
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Skalieren der Knoten der Steuerungsebene
Die Verwaltung der Knoten auf der Steuerungsebene hat sich nicht geändert. Die Art und Weise, wie sie erstellt, skaliert und entfernt werden, bleibt unverändert. Sie stellen die Knoten der Steuerungsebene nach wie vor mit dem Befehl New-AksHciCluster mit den Parametern controlPlaneNodeCount und controlPlaneVmSize mit den Standardwerten 1 bzw. Standard_A4_V2 bereit, wenn Sie keine Werte angeben.
Möglicherweise müssen Sie die Knoten der Kontrollebene skalieren, wenn sich der Workloadbedarf Ihrer Anwendungen ändert. Skalieren Sie die Knoten der Steuerungsebene mit dem Befehl Set-AksHciCluster. Im folgenden Beispiel werden die Steuerebenenknoten auf 3 im mycluster Cluster skaliert, die in den vorherigen Schritten erstellt wurden.
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
Löschen eines Knotenpools
Wenn Sie einen Knotenpool löschen müssen, verwenden Sie den Befehl Remove-AksHciNodePool. Im folgenden Beispiel wird der Knotenpool mit dem Namen windowsnodepool aus dem Cluster mycluster entfernt.
Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool
Angeben eines Taints für einen Knotenpool
Beim Erstellen eines Knotenpools können Sie dem Pool Taints hinzufügen. Wenn Sie einen Taint hinzufügen, erhalten alle Knoten des Knotenpools diesen Taint. Weitere Informationen zu Taints und Toleranzen finden Sie im Artikel zu den Kubernetes-Taints und -Toleranzen.
Festlegen von Taints für Knotenpools
Verwenden Sie New-AksHciNodePool, um einen Knotenpool mit einem Taint zu erstellen. Geben Sie den Namen taintnp an, und verwenden Sie den Parameter -taints, um sku=gpu:noSchedule für den Taint anzugeben.
New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule
Hinweis
Ein Taint kann nur bei der Erstellung des Knotenpools festgelegt werden.
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Knotenpool erfolgreich mit dem angegebenen Taint bereitgestellt wurde.
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}
Im vorherigen Schritt haben Sie beim Erstellen Ihres Knotenpools den sku=gpu:NoSchedule-Taint angewendet. Das folgende einfache YAML-Beispielmanifest verwendet eine Toleranz, damit der Kubernetes-Planer einen NGINX-Pod auf einem Knoten in diesem Knotenpool ausführen kann.
Erstellen Sie eine Datei mit dem Namen nginx-toleration.yaml, und kopieren Sie die Informationen im folgenden Text.
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"
Planen Sie dann den Pod mit dem folgenden Befehl.
kubectl apply -f nginx-toleration.yaml
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Pod bereitgestellt wurde:
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