Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie aktualisiere ich die Eigenschaften in von Amazon EKS verwalteten Knotengruppen?
Ich möchte die Eigenschaften in meiner von Amazon Elastic Kubernetes Service (Amazon EKS) verwalteten Knotengruppe ändern.
Kurzbeschreibung
Der Vorgang zum Aktualisieren einer verwalteten Knotengruppeneigenschaft hängt vom Eigenschaftstyp ab, den du ändern möchtest.
Du kannst UpdateNodegroupConfig oder UpdateNodegroupVersion verwenden, um die folgenden Eigenschaften zu aktualisieren:
- Bezeichnungen
- Taints
- scalingConfig
- nodeRepairConfig
- updateConfig
- launchTemplate
Hinweis: Um die launchTemplate-Eigenschaft zu bearbeiten, musst du sie beim Erstellen der verwalteten Knotengruppe angeben.
Du kannst benutzerdefinierte Startvorlagen verwenden, um die folgenden Eigenschaften zu aktualisieren:
- diskSize
- remoteAccess
- tags
Hinweis: Du kannst auch die TagResource-API verwenden, um Tags zu aktualisieren.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Um die instanceType-Eigenschaft zu ändern, gib den Instance-Typ in der Startvorlage an, wenn du die verwaltete Knotengruppe erstellst. Anschließend kannst du ihn in der Startvorlage aktualisieren.
Um die amiType-Eigenschaft zu ändern, gib die ImageId in der Startvorlage an, wenn du die Knotengruppe erstellst. Anschließend kannst du sie aktualisieren, um eine andere Amazon Machine Image (AMI)-ID in der Startvorlage zu verwenden.
Um Eigenschaften zu aktualisieren, die du nicht direkt ändern kannst, musst du zunächst eine verwaltete Knotengruppe erstellen. Lege dann optional ein Pod-Unterbrechungsbudget (PDB) fest, entleere die vorhandenen Knoten und lösche die alte verwaltete Knotengruppe.
Eine neue verwaltete Knotengruppe erstellen
Führe die folgenden Schritte aus:
- Erstelle eine neue verwaltete Knotengruppe.
- Prüfe, ob die Knoten, die von der von dir erstellten verwalteten Knotengruppe gestartet wurden, dem Cluster erfolgreich beigetreten sind. Führe den folgenden Befehl aus:
Hinweis: Ersetze my-new-node-group-name durch den gewünschten Namen für die neue Knotengruppe.kubectl get node -l 'eks.amazonaws.com/nodegroup=my-new-node-group-name'
Wenn die Knoten dem Cluster erfolgreich beigetreten sind, wird eine Ausgabe ähnlich der folgenden angezeigt:NAME STATUS ROLES AGE VERSION ip-192-168-95-10.ec2.internal Ready <none> 3m33s v1.33.3-eks-3abbec1 ip-192-168-96-53.ec2.internal Ready <none> 3m32s v1.33.3-eks-3abbec1
Optional: PDBs festlegen
Um einen Pod sicher zu einer neu erstellten verwalteten Knotengruppe zu migrieren und seine Verfügbarkeit aufrechtzuerhalten, empfiehlt es sich, PDBs für Workloads einzurichten.
Wenn du bereits eine PDB verwendest, überprüfe die Konfiguration. Führe den folgenden Befehl aus:
kubectl get pdb -n your_namespace
Hinweis: Ersetzeyour-namespace durch den Namen deines Namespace.
Beispielausgabe:
NAME MIN AVAILABLE MAX UNAVAILABLE ALLOWED DISRUPTIONS AGE my-pdb 2 N/A 2 95d
Wenn du keine PDB konfiguriert hast, kannst du die folgende Vorlage verwenden, um eine für jeden Workload zu erstellen.
apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: mypdb namespace: your_namespace spec: minAvailable: 2 selector: matchLabels: app: myapp
Hinweis: Ersetze your_namespace durch den Namen deines Namespace.
Weitere Informationen findest du unter Schützen kritischer Workloads mit Pod-Unterbrechungsbudgets.
Bestehende Knoten entleeren
Markiere den vorhandenen Knoten als nicht planbar und entferne dann die Pods, die darauf ausgeführt werden.
Hinweis: Wenn du Kubernetes Cluster Autoscaler verwendest, skaliere dann die Bereitstellung auf null Replikate herunter, um Konflikte bei Skalierungsaktionen zu vermeiden. Führe den folgenden Befehl aus:
kubectl scale deployments/cluster-autoscaler --replicas=0 -n kube-system
Führe die folgenden Schritte aus:
- Verhindere, dass neue Pods geplant werden. Führe den folgenden Befehl aus:
Hinweis: Ersetzemy-old-node-group-name durch den vorhandenen Knotengruppennamen.kubectl cordon -l 'eks.amazonaws.com/nodegroup=my-old-node-group-name' - Entferne Workloads nacheinander von jedem Knoten, der nicht geplant werden kann. Führe den folgenden Befehl aus:
Hinweis: Ersetze your-node durch den Namen deines Knotens.kubectl drain --ignore-daemonsets --delete-emptydir-data your_node - Stelle sicher, dass die entfernten Pods auf den neuen Knoten ausgeführt werden. Führe den folgenden Befehl aus:
Hinweis: Ersetze your_namespace durch den Namen deines Namespace.kubectl get deploy -n your_namespace
Beispielausgabe:NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/test 4/4 4 4 5d3h
Die alte verwaltete Knotengruppe löschen
Nachdem alle Pods außer DaemonSet aus dem vorhandenen Knoten entfernt wurden, lösche die alte verwaltete Knotengruppe.
Ähnliche Informationen
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 8 Monaten