Hilf mit, diese Seite zu verbessern
Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Aktualisieren Sie den vorhandenen Cluster auf die neue Kubernetes-Version
Wann ein neuer Kubernetes Die Version ist in Amazon EKS verfügbar. Sie können Ihren EKS Amazon-Cluster auf die neueste Version aktualisieren.
Wichtig
Sobald Sie einen Cluster aktualisiert haben, können Sie kein Downgrade auf eine frühere Version durchführen. Wir empfehlen dies, bevor Sie auf eine neue Version aktualisieren Kubernetes Version, lesen Sie die Informationen in Verstehe die Kubernetes Versionslebenszyklus auf EKS und lesen Sie sich auch die Aktualisierungsschritte in diesem Thema durch.
Neu Kubernetes Versionen führen manchmal zu wesentlichen Änderungen. Daher empfehlen wir Ihnen, das Verhalten Ihrer Anwendungen anhand einer neuen Version zu testen Kubernetes Version, bevor Sie Ihre Produktionscluster aktualisieren. Sie können dies tun, indem Sie einen kontinuierlichen Integrations-Workflow erstellen, um das Verhalten Ihrer Anwendung zu testen, bevor Sie zu einer neuen wechseln Kubernetes Version.
Der Aktualisierungsprozess besteht darin, dass Amazon neue API Serverknoten mit dem aktualisierten EKS startet Kubernetes Version, um die vorhandenen zu ersetzen. Amazon EKS führt standardmäßige Integritätsprüfungen für den Netzwerkverkehr auf diesen neuen Knoten durch, um sicherzustellen, dass sie erwartungsgemäß funktionieren. Sobald Sie das Cluster-Upgrade gestartet haben, können Sie es jedoch weder anhalten noch beenden. Wenn eine dieser Prüfungen fehlschlägt, macht Amazon EKS die Infrastrukturbereitstellung rückgängig und Ihr Cluster bleibt auf dem vorherigen Kubernetes Version. Laufende Anwendungen sind davon nicht betroffen und Ihr Cluster befindet sich nie in einem nicht deterministischen oder nicht wiederherstellbaren Zustand. Amazon sichert EKS regelmäßig alle verwalteten Cluster, und es gibt Mechanismen, um Cluster bei Bedarf wiederherzustellen. Wir evaluieren und verbessern ständig unsere Kubernetes Prozesse für das Infrastrukturmanagement.
Um den Cluster zu aktualisieren, EKS benötigt Amazon bis zu fünf verfügbare IP-Adressen aus den Subnetzen, die Sie bei der Erstellung Ihres Clusters angegeben haben. Amazon EKS erstellt neue elastische Cluster-Netzwerkschnittstellen (Netzwerkschnittstellen) in jedem der von Ihnen angegebenen Subnetze. Die Netzwerkschnittstellen können in anderen Subnetzen erstellt werden als Ihre vorhandenen Netzwerkschnittstellen. Stellen Sie daher sicher, dass Ihre Sicherheitsgruppenregeln die erforderliche Cluster-Kommunikation für jedes der Subnetze zulassen, die Sie bei der Erstellung Ihres Clusters angegeben haben. Wenn eines der Subnetze, die Sie bei der Erstellung des Clusters angegeben haben, nicht existiert, nicht genügend verfügbare IP-Adressen hat oder nicht über Sicherheitsgruppenregeln verfügt, die die notwendige Clusterkommunikation zulassen, kann die Aktualisierung fehlschlagen.
Anmerkung
Um sicherzustellen, dass der API Serverendpunkt für Ihren Cluster immer zugänglich ist, EKS bietet Amazon eine hochverfügbare Kubernetes Kontrollebene und führt während der Aktualisierungsvorgänge fortlaufende Updates der API Server-Instances durch. Um den sich ändernden IP-Adressen von API Serverinstanzen Rechnung zu tragen, die Ihre unterstützen Kubernetes APIServerendpunkt: Sie müssen sicherstellen, dass Ihre API Serverclients Verbindungswiederverbindungen effektiv verwalten. Aktuelle Versionen von kubectl
und der Kubernetes Clientbibliotheken
Aktualisieren Sie das Kubernetes Version für Ihren EKS Amazon-Cluster
Um das zu aktualisieren Kubernetes Version für Ihren Cluster
-
Vergleichen Sie die Kubernetes Version Ihrer Cluster-Steuerebene mit der Kubernetes Version Ihrer Knoten.
-
Holen Sie sich das Kubernetes Version Ihrer Cluster-Steuerebene.
kubectl version
-
Holen Sie sich das Kubernetes Version Ihrer Knoten. Dieser Befehl gibt alle selbstverwalteten und verwalteten Amazon- EC2 und Fargate-Knoten zurück. Jedes Fargate Pod ist als eigener Knoten aufgeführt.
kubectl get nodes
Bevor Sie Ihre Steuerungsebene auf eine neue aktualisieren Kubernetes Version, stellen Sie sicher, dass Kubernetes Die Nebenversion sowohl der verwalteten Knoten als auch der Fargate-Knoten in Ihrem Cluster entspricht der Version Ihrer Kontrollebene. Wenn auf Ihrer Kontrollebene beispielsweise die Version ausgeführt wird
1.30
und auf einem Ihrer Knoten die Version ausgeführt wird1.29
, müssen Sie Ihre Knoten auf Version aktualisieren,1.30
bevor Sie Ihre Kontrollebene auf Version 1.31 aktualisieren. Wir empfehlen außerdem, dass Sie Ihre selbstverwalteten Knoten auf dieselbe Version wie Ihre Steuerebene aktualisieren, bevor Sie die Steuerebene aktualisieren. Weitere Informationen erhalten Sie unter Aktualisieren Sie eine verwaltete Knotengruppe für Ihren Cluster und Aktualisieren Sie selbstverwaltete Knoten für Ihren Cluster. Wenn Sie Fargate-Knoten mit einer Unterversion haben, die niedriger ist als die Version auf der Kontrollebene, löschen Sie zuerst die Pod das wird durch den Knoten repräsentiert. Aktualisieren Sie dann Ihre Steuerebene. Alle verbleibenden Pods wird auf die neue Version aktualisiert, nachdem Sie sie erneut bereitgestellt haben. -
-
Wenn das Symbol Kubernetes Version, mit der Sie Ihren Cluster ursprünglich bereitgestellt haben, war Kubernetes
1.25
oder später, überspringen Sie diesen Schritt.Standardmäßig ist der Pod Der Security Policy Admission Controller ist auf EKS Amazon-Clustern aktiviert. Bevor Sie Ihren Cluster aktualisieren, stellen Sie sicher, dass die richtigen Pod Sicherheitsrichtlinien sind vorhanden. Dies dient dazu, potenzielle Sicherheitsprobleme zu vermeiden. Sie können die Standardrichtlinie mit dem Befehl
kubectl get psp eks.privileged
überprüfen.kubectl get psp eks.privileged
Wenn die folgende Fehlermeldung angezeigt wird, lesen Sie EKSAmazon-Standard Pod Sicherheitsrichtlinie, bevor Sie fortfahren.
Error from server (NotFound): podsecuritypolicies.extensions "eks.privileged" not found
-
Wenn das Symbol Kubernetes Version, mit der Sie Ihren Cluster ursprünglich bereitgestellt haben, war Kubernetes
1.18
oder später, überspringen Sie diesen Schritt.Möglicherweise müssen Sie eine ausgelaufene Laufzeit aus Ihrem entfernen CoreDNS Manifest.
-
Überprüfe, ob dein CoreDNS Manifest hat eine Zeile, die nur das Wort enthält
upstream
.kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream
Wenn keine Ausgabe zurückgegeben wird, bedeutet dies, dass Ihr Manifest die Zeile nicht enthält. In diesem Fall überspringen Sie den nächsten Schritt. Wenn das Wort
upstream
zurückgegeben wird, müssen Sie die Zeile entfernen. -
Entfernen Sie in der configmap-Datei die Zeile am oberen Rand der Datei, die nur das Wort
upstream
enthält. Ändern Sie sonst nichts in der Datei. Nachdem die Zeile entfernt wurde, speichern Sie die Änderungen.kubectl edit configmap coredns -n kube-system -o yaml
-
-
Aktualisieren Sie Ihren Cluster mit
eksctl
AWS Management Console, dem oder AWS CLI.Wichtig
-
Wenn Sie auf Version aktualisieren
1.23
und EBS Amazon-Volumes in Ihrem Cluster verwenden, müssen Sie den EBS CSI Amazon-Treiber in Ihrem Cluster installieren, bevor Sie Ihren Cluster auf Version aktualisieren, um Workload-Unterbrechungen1.23
zu vermeiden. Weitere Informationen erhalten Sie unter Kubernetes1.23 und Speichern Kubernetes Volumen mit Amazon EBS. -
Die Kubernetes-Versionen
1.24
und höher nutzencontainerd
als standardmäßige Container-Laufzeit. Wenn Sie zurcontainerd
Runtime wechseln und dies bereits getan haben Fluentd konfiguriert für Container Insights, dann müssen Sie migrieren Fluentd to Fluent Bit bevor Sie Ihren Cluster aktualisieren. Das Tool Fluentd Parser sind so konfiguriert, dass sie Protokollnachrichten nur im JSON Format analysieren. Imdockerd
Gegensatz dazu enthält diecontainerd
Container-Laufzeit Protokollnachrichten, die nicht formatiert JSON sind. Wenn Sie nicht migrieren zu Fluent Bit, einige der konfigurierten Fluentd's Parser werden eine große Anzahl von Fehlern innerhalb des erzeugen Fluentd Behälter. Weitere Informationen zur Migration finden Sie unter Einrichten Fluent Bit um Protokolle DaemonSet an Logs zu CloudWatch senden. -
Da Amazon eine hoch verfügbare Kontrollebene EKS betreibt, können Sie jeweils nur eine Nebenversion aktualisieren. Weitere Informationen zu dieser Anforderung finden Sie unter Kubernetes Supportrichtlinie
für Version und Versionsverzerrung. Angenommen, Ihre aktuelle Cluster-Version ist Version 1.29
und Sie möchten sie auf Version1.31
aktualisieren. Sie müssen zuerst Ihren Version1.29
-Cluster auf Version1.30
und dann Ihren Version1.30
-Cluster auf Version1.31
aktualisieren. -
Überprüfen Sie den Versionsunterschied zwischen Kubernetes
kube-apiserver
und diekubelet
auf Ihren Knoten.-
Ausgehend von Kubernetes Version
1.28
,kubelet
kann bis zu drei Nebenversionen älter sein alskube-apiserver
. Weitere Informationen finden Sie in der Richtlinie zum Unterschied bei der Kubernetes-Upstream-Version. -
Wenn der
kubelet
auf Ihren verwalteten Knoten und den Fargate-Knoten aktiviert ist Kubernetes Version1.25
oder neuer, Sie können Ihren Cluster bis zu drei Versionen im Voraus aktualisieren, ohne diekubelet
Version zu aktualisieren. Wenn die Version beispielsweise aktiviertkubelet
ist1.25
, können Sie Ihre EKS Amazon-Cluster-Version von1.25
bis1.26
, bis und zu aktualisieren1.27
,1.28
solange die Version aktiviertkubelet
bleibt1.25
. -
Wenn der
kubelet
auf Ihren verwalteten Knoten und den Fargate-Knoten aktiviert ist Kubernetes Version1.24
oder älter, es können nur bis zu zwei Nebenversionen sein, die älter sind als diekube-apiserver
. Anders ausgedrückt: Wenn daskubelet
über die Version1.24
oder über eine ältere Version verfügt, können Sie Ihren Cluster nur um bis zu Versionen aktualisieren. Wenn die Version aktiviertkubelet
ist1.21
, können Sie Ihre EKS Amazon-Cluster-Version beispielsweise von1.21
bis1.22
und bis aktualisieren1.23
, aber Sie können den Cluster nicht aktualisieren,1.24
kubelet
solange der aktiviert ist1.21
.
-
-
Bevor Sie mit einem Update beginnen, sollten Sie als bewährte Methode sicherstellen, dass die
kubelet
auf Ihren Knoten identisch ist Kubernetes Version wie Ihre Steuerungsebene. -
Wenn Ihr Cluster mit einer Version von konfiguriert ist Amazon VPC CNI plugin for Kubernetes das ist früher als
1.8.0
, dann empfehlen wir Ihnen, das Plugin auf die neueste Version zu aktualisieren, bevor Sie Ihren Cluster aktualisieren. Informationen zum Aktualisieren des Plugins finden Sie unter Zuweisen IPs zu Pods mit dem Amazon VPC CNI. -
Wenn Sie Ihren Cluster auf Version
1.25
oder höher aktualisieren und die AWS Load Balancer Controller in Ihrem Cluster bereitgestellt, aktualisieren Sie dann den Controller auf Version2.4.7
oder höher, bevor Sie Ihre Clusterversion auf aktualisieren1.25
. Weitere Informationen finden Sie in den Kubernetes1.25-Versionshinweisen.
-
-
Nachdem Ihr Cluster-Update abgeschlossen ist, aktualisieren Sie Ihre Knoten auf dasselbe Kubernetes Nebenversion wie Ihr aktualisierter Cluster. Weitere Informationen erhalten Sie unter Aktualisieren Sie selbstverwaltete Knoten für Ihren Cluster und Aktualisieren Sie eine verwaltete Knotengruppe für Ihren Cluster. Irgendein neues Pods die auf Fargate gestartet werden, haben eine
kubelet
Version, die Ihrer Cluster-Version entspricht. Bestehendes Fargate Pods wurden nicht verändert. -
(Optional) Wenn Sie das bereitgestellt haben Kubernetes Cluster-Autoscaler für Ihren Cluster Bevor Sie den Cluster aktualisieren, aktualisieren Sie den Cluster-Autoscaler auf die neueste Version, die dem entspricht Kubernetes Haupt- und Nebenversion, auf die Sie aktualisiert haben.
-
Öffnen Sie die Seite mit den Versionen
von Cluster Autoscaler in einem Webbrowser und suchen Sie nach der neuesten Version von Cluster Autoscaler, die der Ihres Clusters entspricht Kubernetes Haupt- und Nebenversion. Zum Beispiel, wenn Ihr Cluster Kubernetes Version ist 1.31
Suchen Sie die neueste Version von Cluster Autoscaler, die mit beginnt.1.31
Notieren Sie die semantische Versionsnummer (z. B.1.31.n
) für diese Version, um sie im nächsten Schritt zu verwenden. -
Legen Sie das Cluster Autoscaler-Abbild-Tag mit dem folgenden Befehl auf die Version fest, die Sie im vorherigen Schritt notiert haben. Ersetzen Sie ggf.
durch Ihren eigenen Wert.1.31
.n
kubectl -n kube-system set image deployment.apps/cluster-autoscaler cluster-autoscaler=registry.k8s.io/autoscaling/cluster-autoscaler:v
1.31
.n
-
-
(Nur Cluster mit GPU Knoten) Wenn Ihr Cluster Knotengruppen mit GPU Unterstützung hat (z. B.
p3.2xlarge
), müssen Sie das NVIDIA Geräte-Plug-In für aktualisieren KubernetesDaemonSet auf Ihrem Cluster.
Ersetzen Sie es durch die gewünschte NVIDIAs-device-plugin/k8-VersionvX.X.X
, bevor Sie den folgenden Befehl ausführen. kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/
vX.X.X
/deployments/static/nvidia-device-plugin.yml -
Aktualisieren Sie das Amazon VPC CNI plugin for Kubernetes, CoreDNS, und
kube-proxy
Add-Ons. Wir empfehlen, die Add-Ons auf die Mindestversionen zu aktualisieren, die unter Servicekonto-Tokens aufgeführt sind.-
Wenn Sie EKS Amazon-Add-Ons verwenden, wählen Sie in der EKS Amazon-Konsole Clusters und anschließend im linken Navigationsbereich den Namen des Clusters aus, den Sie aktualisiert haben. In der Konsole werden Benachrichtigungen angezeigt. Diese informieren Sie darüber, dass für jedes Add-On, für das eine Aktualisierung verfügbar ist, eine neue Version verfügbar ist. Um ein Add-on zu aktualisieren, wählen Sie die Registerkarte Add-ons aus. Wählen Sie in einem der Felder für ein Add-on, für das eine Aktualisierung verfügbar ist, Jetzt aktualisieren aus, wählen Sie eine verfügbare Version aus, und wählen Sie dann Aktualisieren aus.
-
Alternativ können Sie das AWS CLI oder verwenden, um Add-Ons
eksctl
zu aktualisieren. Weitere Informationen finden Sie unter Ein EKS Amazon-Add-on aktualisieren.
-
-
Sofern erforderlich, aktualisieren Sie Ihre Version von
kubectl
. Sie müssen einekubectl
Version verwenden, die sich innerhalb eines geringfügigen Versionsunterschieds von Ihrer EKS Amazon-Cluster-Steuerebene unterscheidet. Ein1.30
kubectl
Client arbeitet beispielsweise mit Kubernetes1.29
1.30
, und1.31
Cluster. Sie können Ihre aktuell installierte Version mit dem folgenden Befehl überprüfen.kubectl version --client
Herabstufen des Kubernetes Version für einen EKS Amazon-Cluster
Sie können das nicht downgraden Kubernetes eines EKS Amazon-Clusters. Erstellen Sie stattdessen einen neuen Cluster auf einer früheren EKS Amazon-Version und migrieren Sie die Workloads.