Wie kann ich meine Worker-Knoten in Amazon EKS überprüfen, skalieren, entleeren oder löschen?
Ich habe eksctl oder die Amazon Elastic Kubernetes Service (Amazon EKS)-Konsole verwendet, um meine Worker-Knoten zu überprüfen, zu skalieren, zu entleeren oder zu löschen.
Lösung
Worker-Knoten überprüfen
Um die Worker-Knoten aufzulisten, die du bei der Amazon EKS-Steuerebene registriert hast, führe den folgenden Befehl aus:
kubectl get nodes -o wide
In der Ausgabe kannst du den Namen, die Kubernetes-Version, das Betriebssystem und die IP-Adresse der Worker-Knoten sehen.
Führe den folgenden Befehl aus, um zusätzliche Informationen zu einem bestimmten Worker-Knoten abzurufen:
kubectl describe node/node_name
Hinweis: Ersetze node_name durch den Amazon-Ressourcennamen (ARN) des Worker-Knotens. Zum Beispiel ip-AA-BB-CC-DD.us-east-1.compute.internal.
Die Ausgabe enthält Informationen über den Worker-Knoten, wie z. B. Labels, Taints, Systeminformationen und Status.
Worker-Knoten skalieren
Hinweis: Wenn die Knotengruppen in der Amazon EKS-Konsole angezeigt werden, verwende eine verwaltete Knotengruppe, um die Worker-Knoten zu skalieren. Andernfalls verwende eine nicht verwaltete Knotengruppe.
Verwende eine der folgenden Methoden, um die Worker-Knoten zu skalieren.
Skaliere Worker-Knoten mit eksctl
Führe den folgenden Befehl aus, um die verwalteten oder nicht verwalteten Worker-Knoten mit „eksctl“ zu skalieren:
eksctl scale nodegroup --cluster=clusterName --nodes=desiredCount --name=nodegroupName
Hinweis: Ersetze ClusterName durch den Cluster-Namen, desiredCount durch die Anzahl der Knoten, auf die skaliert werden soll, und nodegroupName durch den Namen der Knotengruppe.
Skalieren von Worker-Knoten ohne eksctl
Um die verwalteten Worker-Knoten ohne „eksctl“ zu skalieren, bearbeite die Knotengruppenkonfiguration.
Worker-Knoten mit CloudFormation skalieren
Um AWS CloudFormation zur Skalierung der nicht verwalteten Worker-Knoten zu verwenden, verwende eine CloudFormation-Vorlage, um die Worker-Knoten für Windows oder Linux zu starten. Dann modifiziere die Parameter NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize oder NodeAutoScalingGroupMaxSize im CloudFormation-Stack.
Worker-Knoten enztleeren
Wichtig: Die Drain-Aktion isoliert den Worker-Knoten so, dass Kubernetes keine neuen Pods mehr auf dem Knoten plant. Kubernetes entfernt Pods, die auf dem Zielknoten ausgeführt werden und verhindert, dass sie Knoten entleeren.
Du kannst eine ganze Knotengruppe oder einen einzelnen Worker-Knoten entleeren.
Entleeren der gesamten Knotengruppe
Wenn du „eksctl“ verwendest, um die Worker-Knoten zu starten, führe den folgenden Befehl aus:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName
Hinweis: Ersetze ClusterName durch den Cluster-Namen und NodeGroupName durch den Knotengruppennamen.
Führe den folgenden Befehl aus, um eine entleerte Knotengruppe zu entkoppeln:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName --undo
Hinweis: Ersetze ClusterName durch den Cluster-Namen und NodeGroupName durch den Knotengruppennamen.
Wenn du „eksctl“ nicht verwendet hast, um die Worker-Knoten zu starten, führe das folgende Skript aus, um alle Knoten einer bestimmten Kubernetes-Version zu leeren:
#!/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
Hinweis: Ersetze 1.18.8-eks-7c9bda durch die Kubernetes-Version.
Führe das folgende Skript aus, um die leeren Knoten zu entkoppeln:
#!/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: Ersetze 1.18.8-eks-7c9bda durch die Kubernetes-Version.
Führe den folgenden Befehl aus, um die Versionsnummer des Worker-Knotens abzurufen:
kubectl get nodesNAME
Hinweis: Ersetze NodesName durch den Knotennamen.
Beispielausgabe:
$ kubectl get nodesNAME STATUS ROLES AGE VERSION ip-ABC-ACB-DE-ABC.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda ip-ABC-ABC-DE-ABC.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda
Die Versionsnummer wird in der Spalte VERSION angezeigt.
Einen einzelnen Worker-Knoten entleeren
Wenn du „eksctl“ nicht verwendet hast, um die Worker-Knoten zu starten oder einen bestimmten Knoten zu entleeren, dann isoliere den Worker-Knoten elegant. Führe den folgenden Befehl aus:
kubectl drain node_name --ignore-daemonsets
Hinweis: Ersetzen node_name durch deinen Knotennamen.
Um die Isolierung rückgängig zu machen, führe den folgenden Befehl aus:
kubectl uncordon node_name
Hinweis: Ersetzen node_name durch deinen Knotennamen.
Du kannst die vorhandenen Anwendungen auch in eine neue Worker-Knotengruppe migrieren.
Worker-Knoten löschen
Wichtig: DU kannst eine Löschaktion nicht rückgängig machen.
Wenn du „eksctl“ verwendest, führe den folgenden Befehl aus:
eksctl delete nodegroup --cluster=clusterName --name=nodegroupName
Hinweis: Ersetze ClusterName durch den Cluster-Namen und NodeGroupName durch den Knotengruppennamen.
Wenn du eine verwaltete Knotengruppe hast, findest du weitere Informationen unter Löschen einer verwalteten Knotengruppe aus dem Cluster.
Wenn du eine nicht verwaltete Knotengruppe haben und eine CloudFormation-Vorlage verwendet hast, um die Worker-Knoten zu starten, lösche den Stack der Knotengruppe.
Wenn du eine nicht verwaltete Knotengruppe hast, aber keine CloudFormation-Vorlage verwendet hast, lösche die Amazon Elastic Compute Cloud (Amazon EC2- Auto-Scaling-Gruppe. Oder beende die Instance, wenn du keine Amazon EC2 Auto Scaling-Gruppe verwendet hast.
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 2 Jahren
AWS OFFICIALAktualisiert vor 4 Jahren