Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Wie kann ich meine Worker-Knoten in Amazon EKS überprüfen, skalieren, löschen oder entleeren?
Ich habe meine Amazon Elastic Kubernetes Service (Amazon EKS)-Worker-Knoten mit Eksctl oder der AWS-Managementkonsole gestartet. Jetzt möchte ich meine Worker-Knoten überprüfen, skalieren, entleeren oder löschen.
Lösung
Überprüfen Sie Ihre Worker-Knoten
Um die Worker-Knoten aufzulisten, die bei der Amazon EKS-Steuerebene registriert sind, führen Sie den folgenden Befehl aus:
kubectl get nodes -o wide
Die Ausgabe gibt den Namen, die Kubernetes-Version, das Betriebssystem und die IP-Adresse der Worker-Knoten zurück.
Um zusätzliche Informationen über einen einzelnen Worker-Knoten zu erhalten, führen Sie den folgenden Befehl aus:
kubectl describe node/node_name
Hinweis: Ersetzen Sie node_name durch Ihren Wert, zum Beispiel: ip-XX-XX-XX-XX.us-east-1.compute.internal.
Die Ausgabe enthält weitere Informationen über den Worker-Knoten, einschließlich Labels, Taints, Systeminformationen und Status.
Skalieren Sie Ihre Worker-Knoten
**Hinweis:**Wenn Ihre Knotengruppen in der Amazon EKS-Konsole angezeigt werden, verwenden Sie eine verwaltete Knotengruppe. Andernfalls verwenden Sie eine nicht verwaltete Knotengruppe.
Verwenden Sie eine der folgenden Methoden, um Ihre Worker-Knoten zu skalieren.
Skalieren Sie Worker-Knoten mit eksctl
Führen Sie den folgenden Befehl aus, um Ihre verwalteten oder nicht verwalteten Worker-Knoten mit eksctl zu skalieren:
eksctl scale nodegroup --cluster=clusterName --nodes=desiredCount --name=nodegroupName
Hinweis: Ersetzen Sie clusterName, desiredCount und nodegroupName durch Ihre Werte.
Skalieren von Worker-Knoten ohne eksctl
Um Ihre verwalteten Worker-Knoten ohne eksctl zu skalieren, bearbeiten Sie die Knotengruppenkonfiguration.
Skalieren Sie Worker-Knoten mit CloudFormation
Um Ihre nicht verwalteten Worker-Knoten mithilfe von AWS CloudFormation zu skalieren, führen Sie die folgenden Schritte aus:
- Verwenden Sie eine CloudFormation-Vorlage, um Ihre Worker-Knoten für Windows oder Linux zu starten.
- Modifizieren Sie die Parameter NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize, oder NodeAutoScalingGroupMaxSize in Ihrem CloudFormation-Stack.
Entleeren Sie Ihre Worker-Knoten
Wichtig: Die Drain-Aktion isoliert den Worker-Knoten, und Kubernetes plant keine neuen Pods mehr auf dem Knoten. Pods, die auf dem Zielknoten ausgeführt werden, werden aus den entleerenden Knoten entfernt und gestoppt.
Sie können entweder eine ganze Knotengruppe oder einen einzelnen Worker-Knoten entleeren.
Entleeren der gesamten Knotengruppe
Wenn Sie eksctl verwenden, um Ihre Worker-Knoten zu starten, führen Sie den folgenden Befehl aus:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName
Hinweis: Ersetzen Sie clusterName und nodegroupName durch Ihre Werte.
Führen Sie den folgenden Befehl aus, um die Knotengruppe zu leeren:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName --undo
Hinweis: Ersetzen Sie clusterName und nodegroupName durch Ihre Werte.
Wenn Sie eksctl nicht verwenden, um Ihre Worker-Knoten zu starten, identifizieren Sie alle Knoten einer bestimmten Kubernetes-Version und entleeren Sie sie. Zum Beispiel:
#!/bin/bash K8S_VERSION=1.18.8-eks-7c9bda nodes=$(kubectl get nodes -o jsonpath="{.items[?(@.status.nodeInfo.kubeletVersion==\"v$K8S_VERSION\")].metadata.name}") for node in ${nodes[@]} do echo "Draining $node" kubectl drain $node --ignore-daemonsets --delete-local-data done
Um alle Knoten einer bestimmten Kubernetes-Version zu identifizieren und zu entkoppeln, verwenden Sie den folgenden Code:
#!/bin/bash K8S_VERSION=1.18.8-eks-7c9bda nodes=$(kubectl get nodes -o jsonpath="{.items[?(@.status.nodeInfo.kubeletVersion==\"v$K8S_VERSION\")].metadata.name}") for node in ${nodes[@]} do echo "Uncordon $node" kubectl uncordon $node done
Hinweis: Führen Sie den folgenden Befehl aus, um die Version Ihres Worker-Knotens abzurufen. Die Versionsnummer wird in der Spalte VERSION angezeigt:
$ kubectl get nodesNAME STATUS ROLES AGE VERSION ip-XXX-XXX-XX-XXX.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda ip-XXX-XXX-XX-XXX.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda
Entleeren Sie einen einzelnen Worker-Knoten
Wenn Sie eksctl nicht verwenden, um Ihre Worker-Knoten zu starten, oder wenn Sie nur einen bestimmten Knoten leeren möchten, isolieren Sie Ihren Worker-Knoten ordnungsgemäß:
kubectl drain node_name --ignore-daemonsets
**Hinweis:**Ersetzen Sie node_name durch Ihren Wert.
Um die Isolierung rückgängig zu machen, führen Sie den folgenden Befehl aus:
kubectl uncordon node_name
**Hinweis:**Ersetzen Sie node_name durch Ihren Wert.
Informationen zur Migration Ihrer vorhandenen Anwendungen zu einer neuen Worker-Knotengruppe finden Sie unter Migrieren zu einer neuen Knotengruppe.
Löschen Sie Ihre Worker-Knoten
Wichtig: Die Löschaktion kann nicht wiederhergestellt werden.
Wenn Sie eksctl verwenden, führen Sie den folgenden Befehl aus:
eksctl delete nodegroup --cluster=clusterName --name=nodegroupName
Wenn Sie über eine verwaltete Knotengruppe verfügen, führen Sie die Schritte unter Löschen einer verwalteten Knotengruppe aus.
Wenn Sie eine nicht verwaltete Knotengruppe haben und eine CloudFormation-Vorlage verwendet haben, um Ihre Worker-Knoten zu starten, löschen Sie den Stack. Sie müssen den Stack löschen, den Sie für Ihre Knotengruppe für Windows oder Linux erstellt haben.
Wenn Sie eine nicht verwaltete Knotengruppe haben und keine CloudFormation-Vorlage verwendet haben, um Ihre Worker-Knoten zu starten, löschen Sie die Auto-Scaling-Gruppe für Ihre Worker-Knoten. Oder beenden Sie die Instance direkt, wenn Sie keine Auto-Scaling-Gruppe verwendet haben.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Monaten
- AWS OFFICIALAktualisiert vor 2 Monaten