Aktualisieren Sie den vorhandenen Cluster auf die neue Kubernetes-Version - Amazon EKS

Hilf mit, diese Seite 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.

Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

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

Wenn eine neue Kubernetes-Version in Amazon EKS verfügbar ist, können Sie Ihren Amazon-EKS-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. Bevor Sie auf eine neue Kubernetes-Version aktualisieren, empfehlen wir Ihnen, die Informationen Verstehen Sie den Lebenszyklus der Kubernetes-Version auf EKS und die Aktualisierungsschritte in diesem Thema zu lesen.

Neue Kubernetes-Versionen führen oft bedeutende Änderungen ein. Daher empfehlen wir Ihnen, das Verhalten Ihrer Anwendungen mit einer neuen Kubernetes-Version zu testen, bevor Sie Ihre Produktionscluster aktualisieren. Hierzu erstellen Sie einen kontinuierlichen Integrations-Workflow, um das Verhalten Ihrer Anwendungen zu testen, bevor Sie auf eine neue Kubernetes-Version aktualisieren.

Der Aktualisierungsprozess besteht darin, dass Amazon EKS neue API-Serverknoten mit der aktualisierten Kubernetes-Version startet, 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 Infrastruktur-Bereitstellung rückgängig und der Cluster verbleibt in der vorherigen Kubernetes-Version. Laufende Anwendungen sind davon nicht betroffen, und Ihr Cluster befindet sich nie in einem Zustand, der nicht deterministisch ist oder nicht wiederhergestellt werden kann. Amazon EKS sichert regelmäßig alle verwalteten Cluster, und es gibt Mechanismen, um Cluster bei Bedarf wiederherzustellen. Wir evaluieren und verbessern ständig unsere Prozesse für das Kubernetes-Infrastrukturmanagement.

Um den Cluster zu aktualisieren, benötigt Amazon EKS bis zu fünf verfügbare IP-Adressen aus den Subnetzen, die beim Erstellen des Clusters bereitgestellt wurden. Amazon EKS erstellt in jedem der von Ihnen angegebenen Subnetze neue Elastic-Network-Schnittstellen für den Cluster (Netzwerkschnittstellen). 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 vorhanden ist, nicht über genügend verfügbare IP-Adressen verfügt oder es keine Sicherheitsgruppenregeln gibt, die die erforderliche Cluster-Kommunikation ermöglichen, kann das Update fehlschlagen.

Um sicherzustellen, dass der API-Serverendpunkt für Ihren Cluster immer zugänglich ist, bietet Amazon EKS eine hochverfügbare Kubernetes-Steuerebene und führt während der Aktualisierungsvorgänge fortlaufende Updates von API-Server-Instances durch. Um den sich ändernden IP-Adressen von API-Server-Instances, die Ihren Kubernetes-API-Serverendpunkt unterstützen, Rechnung zu tragen, müssen Sie sicherstellen, dass Ihre API-Serverclients Wiederverbindungen effektiv verwalten. Neuere Versionen von kubectl und die offiziell unterstützten Kubernetes-Clientbibliotheken führen diesen Wiederverbindungsprozess transparent durch.

Anmerkung

Weitere Informationen darüber, was in einem Cluster-Update enthalten ist, finden Sie unter Best Practices for Cluster Upgrades im EKS Best Practices Guide. Diese Ressource hilft Ihnen dabei, ein Upgrade zu planen und die Strategie für das Upgrade eines Clusters zu verstehen.

Überlegungen zum Amazon EKS Auto Mode

  • Die Rechenkapazität von Amazon EKS Auto Mode steuert die Kubernetes-Version der Knoten. Nach dem Upgrade der Steuerungsebene beginnt der automatische Modus von EKS mit der schrittweisen Aktualisierung der verwalteten Knoten. Der EKS-Automatikmodus berücksichtigt die Budgets für Pod-Unterbrechungen.

  • Sie müssen die Funktionen von Amazon EKS Auto Mode, einschließlich der Funktionen für automatische Rechenskalierung, Blockspeicher und Lastenausgleich, nicht manuell aktualisieren.

Übersicht

Die allgemeine Zusammenfassung des Amazon EKS-Cluster-Upgrade-Prozesses lautet wie folgt:

  1. Stellen Sie sicher, dass sich Ihr Cluster in einem Zustand befindet, der ein Upgrade unterstützt. Dazu gehört die Überprüfung der Kubernetes-Werte, die von den im Cluster bereitgestellten Ressourcen APIs verwendet werden, um sicherzustellen, dass der Cluster frei von Gesundheitsproblemen ist. Sie sollten Amazon EKS Upgrade Insights verwenden, um die Upgrade-Bereitschaft Ihres Clusters zu bewerten.

  2. Führen Sie ein Upgrade der Steuerungsebene auf die nächste Nebenversion durch (z. B. von 1.31 auf 1.32).

  3. Aktualisieren Sie die Knoten in der Datenebene so, dass sie denen der Steuerungsebene entsprechen.

  4. Aktualisieren Sie alle zusätzlichen Anwendungen, die auf dem Cluster ausgeführt werden (z. B.cluster-autoscaler).

  5. Aktualisieren Sie die von Amazon EKS bereitgestellten Add-Ons, z. B. die standardmäßig enthaltenen:

  6. Aktualisieren Sie alle Clients, die mit dem Cluster kommunizieren (z. B.kubectl).

Schritt 1: Bereiten Sie das Upgrade vor

Vergleichen Sie die Kubernetes-Version Ihrer Cluster-Steuerebene mit der Kubernetes-Version Ihrer Knoten.

  • Holen Sie sich die Kubernetes-Version Ihrer Cluster-Steuerebene.

    kubectl version
  • Holen Sie sich die Kubernetes-Version Ihrer Knoten. Dieser Befehl gibt alle selbstverwalteten und verwalteten Amazon- EC2, Fargate- und Hybridknoten zurück. Jeder Fargate-Pod ist als eigener Knoten aufgeführt.

    kubectl get nodes

Bevor Sie Ihre Kontrollebene auf eine neue Kubernetes-Version aktualisieren, stellen Sie sicher, dass die Kubernetes-Nebenenversion sowohl der verwalteten Knoten als auch der Fargate-Knoten in Ihrem Cluster mit der Version Ihrer Kontrollebene identisch ist. Wenn auf Ihrer Kontrollebene beispielsweise die Version ausgeführt wird 1.29 und auf einem Ihrer Knoten die Version ausgeführt wird, müssen Sie Ihre Knoten auf Version aktualisieren1.28, 1.29 bevor Sie Ihre Kontrollebene auf Version 1.30 aktualisieren. Wir empfehlen Ihnen außerdem, Ihre selbstverwalteten Knoten und Hybridknoten auf dieselbe Version wie Ihre Kontrollebene zu aktualisieren, bevor Sie die Kontrollebene aktualisieren. Weitere Informationen finden Sie unter Aktualisieren Sie eine verwaltete Knotengruppe für Ihren Cluster, Aktualisieren Sie selbstverwaltete Knoten für Ihren Cluster und Aktualisieren Sie Hybridknoten für Ihren Cluster. Wenn Sie Fargate-Knoten mit einer niedrigeren Nebenversion als der Version auf der Kontrollebene haben, löschen Sie zuerst den Pod, der durch den Knoten repräsentiert wird. Aktualisieren Sie dann Ihre Steuerebene. Alle verbleibenden Pods werden auf die neue Version aktualisiert, nachdem Sie sie erneut bereitgestellt haben.

Schritt 2: Überprüfen Sie die Überlegungen zum Upgrade

Amazon EKS Cluster Insights scannt Cluster automatisch anhand einer Liste potenzieller Kubernetes-Versionsupgrades, die sich auf Probleme wie die veraltete Kubernetes-API-Nutzung auswirken. Amazon EKS aktualisiert regelmäßig die Liste der durchzuführenden Insight-Checks auf der Grundlage von Bewertungen von Änderungen im Kubernetes-Projekt. Amazon EKS aktualisiert auch die Liste der Insight-Checks, sobald Änderungen am Amazon EKS-Service zusammen mit neuen Versionen eingeführt werden. Weitere Informationen finden Sie unter Bereiten Sie sich mit Cluster-Erkenntnissen auf Kubernetes-Versionsupgrades vor und beheben Sie Fehlkonfigurationen.

Lesen Sie den Leitfaden zur Migration veralteter APIs in den Kubernetes-Dokumenten.

Lesen Sie Cluster Insights

Verwenden Sie Amazon EKS-Cluster-Einblicke, um Probleme zu identifizieren wi

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie in der Clusterliste den Namen des Amazon-EKS-Clusters aus, für den Sie die Erkenntnisse anzeigen möchten.

  3. Wählen Sie Dashboard anzeigen.

  4. Wählen Sie den Tab Cluster Insights.

  5. In der Tabelle Upgrade Insights sehen Sie die folgenden Spalten:

    • Name: Die Überprüfung, die von Amazon EKS für den Cluster durchgeführt wurde.

    • Insight-Status — Ein Insight mit dem Status „Fehler“ bedeutet in der Regel, dass die betroffene Kubernetes-Version N+1 der aktuellen Cluster-Version ist, während der Status „Warnung“ bedeutet, dass der Einblick für eine future Kubernetes-Version N+2 oder höher gilt. Eine Erkenntnis mit dem Status „Bestanden“ bedeutet, dass Amazon EKS keine Probleme im Zusammenhang mit dieser Erkenntnisüberprüfung in Ihrem Cluster festgestellt hat. Bei einer Erkenntnis mit dem Status „Unbekannt“ kann Amazon EKS nicht feststellen, ob Ihr Cluster von dieser Erkenntnisüberprüfung betroffen ist.

    • Version — Die Kubernetes-Version, bei der Insight auf mögliche Probleme überprüft wurde.

    • Zeitpunkt der letzten Aktualisierung — Der Zeitpunkt, zu dem der Status des Insights für diesen Cluster zuletzt aktualisiert wurde.

    • Zeitpunkt des letzten Übergangs — Der Zeitpunkt, zu dem sich der Status dieses Insights zuletzt geändert hat.

    • Beschreibung: Informationen der letzten Erkenntnisüberprüfung (einschließlich der Warnung und der empfohlenen Behandlungsmaßnahmen).

Detaillierte Überlegungen

  • Da Amazon EKS eine hoch verfügbare Steuerebene ausführt, dürfen Sie jeweils nur um eine Unterversion aktualisieren. Weitere Informationen zu dieser Anforderung finden Sie unter Kubernetes-Version und Version-Skew-Supportrichtlinie. Angenommen, Ihre aktuelle Cluster-Version ist Version 1.28 und Sie möchten sie auf Version 1.30 aktualisieren. Sie müssen zuerst Ihren Version 1.28-Cluster auf Version 1.29 und dann Ihren Version 1.29-Cluster auf Version 1.30 aktualisieren.

  • Prüfen Sie den Versionsunterschied zwischen Kubernetes kube-apiserver und dem kubelet auf Ihren Nodes.

    • Ausgehend von der Kubernetes-Version 1.28 kubelet können bis zu drei Nebenversionen älter sein als. kube-apiserver Weitere Informationen finden Sie in der Richtlinie zum Unterschied bei der Kubernetes-Upstream-Version.

    • Wenn der Knoten kubelet auf Ihrem verwalteten Knoten und auf Fargate auf einer Kubernetes-Version 1.25 oder neuer ist, können Sie Ihren Cluster bis zu drei Versionen im Voraus aktualisieren, ohne die Version zu aktualisieren. kubelet Wenn das kubelet also beispielsweise über die Version 1.25 verfügt, können Sie die Version Ihres Amazon EKS-Clusters von 1.25 auf1.26, auf 1.27 und auf 1.28 aktualisieren und für kubelet die Version 1.25 beibehalten.

  • Als bewährte Methode sollten Sie vor dem Start eines Updates sicherstellen, dass kubelet auf Ihren Knoten dieselbe Kubernetes-Version wie auf Ihrer Kontrollebene installiert ist.

  • Wenn Ihr Cluster mit einer älteren Version des Amazon VPC CNI-Plug-ins für Kubernetes konfiguriert ist als1.8.0, empfehlen wir Ihnen, das Plug-in auf die neueste Version zu aktualisieren, bevor Sie Ihren Cluster aktualisieren. Informationen zum Aktualisieren des Plugins finden Sie unter Pods mit dem Amazon VPC CNI zuweisen IPs .

Schritt 3: Aktualisieren Sie die Cluster-Steuerebene

Wichtig

Amazon EKS hat vorübergehend eine Funktion zurückgesetzt, bei der Sie bei bestimmten Cluster-Insight-Problemen ein --force Flag verwenden müssten, um Ihren Cluster zu aktualisieren. Weitere Informationen finden Sie unter Vorübergehendes Rollback der Durchsetzung von Upgrade-Erkenntnissen bei der Aktualisierung der Cluster-Version auf. GitHub

Amazon EKS aktualisiert einen Cluster-Einblick 24 Stunden nach der „letzten Aktualisierungszeit“. Sie können die Zeit, zu der Sie ein Problem behoben haben, mit der „letzten Aktualisierungszeit“ von Cluster Insight vergleichen.

Darüber hinaus kann es bis zu 30 Tage dauern, bis der Insight-Status aktualisiert wird, nachdem die veraltete API-Nutzung behoben wurde. Upgrade Insights sucht immer über einen fortlaufenden Zeitraum von 30 Tagen nach veralteter API-Nutzung.

Sie können die Anfrage für ein Upgrade Ihrer EKS-Steuerebenenversion wie folgt einreichen:

Cluster aktualisieren - eksctl

Für diesen Vorgang ist eksctl Version 0.210.0 oder höher erforderlich. Sie können Ihre -Version mit dem folgenden Befehl überprüfen:

eksctl version

Eine Installations- und Aktualisierungsanleitung für eksctl finden Sie in der Dokumentation zu eksctl unter Installation.

Aktualisieren Sie die Kubernetes-Version Ihrer Amazon EKS-Kontrollebene. Ersetzen Sie <cluster-name> mit Ihrem Clusternamen. <version-number>Ersetzen Sie es durch die von Amazon EKS unterstützte Versionsnummer, auf die Sie Ihren Cluster aktualisieren möchten. Eine Liste der unterstützten Versionsnummern finden Sie unter Verstehen Sie den Lebenszyklus der Kubernetes-Version auf EKS.

eksctl upgrade cluster --name <cluster-name> --version <version-number> --approve

Die Aktualisierung dauert einige Minuten.

Fahren Sie fort mit Schritt 4: Clusterkomponenten aktualisieren.

Cluster aktualisieren — AWS Konsole

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie für einen Cluster, den Sie aktualisieren möchten, die Option Jetzt aktualisieren aus.

  3. Wählen Sie die Version aus, auf die Sie Ihren Cluster aktualisieren möchten, und wählen Sie Upgrade.

  4. Die Aktualisierung dauert einige Minuten. Fahren Sie fort mit Schritt 4: Clusterkomponenten aktualisieren.

Cluster aktualisieren — AWS CLI

  1. Stellen Sie sicher, dass die AWS CLI installiert ist und ob Sie angemeldet sind. Weitere Informationen finden Sie unter Installation oder Aktualisierung auf die neueste Version der AWS CLI.

  2. Aktualisieren Sie Ihren Amazon EKS-Cluster mit dem folgenden AWS CLI-Befehl. Ersetzen Sie <cluster-name> und <region-code> des Clusters, den Sie aktualisieren möchten. <version-number>Ersetzen Sie es durch die von Amazon EKS unterstützte Versionsnummer, auf die Sie Ihren Cluster aktualisieren möchten. Eine Liste der unterstützten Versionsnummern finden Sie unter Verstehen Sie den Lebenszyklus der Kubernetes-Version auf EKS.

    aws eks update-cluster-version --name <cluster-name> \ --kubernetes-version <verion-number> --region <region-code>

    Eine Beispielausgabe sieht wie folgt aus.

    { "update": { "id": "<update-id>", "status": "InProgress", "type": "VersionUpdate", "params": [ { "type": "Version", "value": "<version-number>" }, { "type": "PlatformVersion", "value": "eks.1" } ], [...] "errors": [] }
  3. Die Aktualisierung dauert einige Minuten. Überwachen Sie den Status Ihres Cluster-Updates mit dem folgenden Befehl. Verwenden Sie nicht nur dasselbe <cluster-name> und<region-code>, sondern auch das, <update-id> das der vorherige Befehl zurückgegeben hat.

    aws eks describe-update --name <cluster-name> \ --region <region-code> --update-id <update-id>

    Wenn der Status Successful angezeigt wird, ist das Update abgeschlossen.

  4. Fahren Sie fort mit Schritt 4: Clusterkomponenten aktualisieren.

Schritt 4: Clusterkomponenten aktualisieren

  1. Nachdem Ihre Cluster-Aktualisierung abgeschlossen wurde, aktualisieren Sie Ihre Knoten auf dieselbe Kubernetes-Nebenversion wie Ihr aktualisierter Cluster. Weitere Informationen finden Sie unter Aktualisieren Sie selbstverwaltete Knoten für Ihren Cluster, Aktualisieren Sie eine verwaltete Knotengruppe für Ihren Cluster und Aktualisieren Sie Hybridknoten für Ihren Cluster. Alle neuen Pods, die auf Fargate gestartet werden, haben eine kubelet Version, die Ihrer Cluster-Version entspricht. Bestehende Fargate Pods werden nicht geändert.

  2. (Optional) Wenn Sie den Kubernetes Cluster Autoscaler in Ihrem Cluster bereitgestellt haben, bevor Sie den Cluster aktualisiert haben, aktualisieren Sie den Cluster Autoscaler auf die neueste Version, die der Kubernetes-Haupt- und Nebenversion entspricht, auf die Sie aktualisiert haben.

    1. Öffnen Sie die Seite mit den Cluster Autoscaler-Releases in einem Webbrowser und suchen Sie nach der neuesten Cluster Autoscaler-Version, die der Kubernetes-Haupt- und Nebenversion Ihres Clusters entspricht. Wenn es sich bei der Kubernetes-Version Ihres Clusters beispielsweise um die neueste Version von Cluster Autoscaler handelt, die 1.30 mit beginnt. 1.30 Notieren Sie die semantische Versionsnummer (z. B. 1.30.n) für diese Version, um sie im nächsten Schritt zu verwenden.

    2. 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. X.XX.X durch Ihren eigenen Wert.

      kubectl -n kube-system set image deployment.apps/cluster-autoscaler cluster-autoscaler=registry.k8s.io/autoscaling/cluster-autoscaler:vX.XX.X
  3. (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-Plugin für DaemonSet Kubernetes auf Ihrem Cluster aktualisieren. Ersetzen Sie es <vX.X.X> durch die gewünschte s-device-pluginNVIDIA/K8-Version, 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
  4. Aktualisieren Sie das Amazon VPC CNI-Plugin für Kubernetes, CoreDNS und Add-Ons. kube-proxy Wir empfehlen, die Add-Ons auf die Mindestversionen zu aktualisieren, die unter Servicekonto-Tokens aufgeführt sind.

    • Wenn Sie Amazon-EKS-Add-Ons verwenden, wählen Sie Clusters (Cluster) in der Amazon-EKS-Konsole und dann 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 die AWS CLI verwenden oder eksctl Add-Ons aktualisieren. Weitere Informationen finden Sie unter Ein Amazon EKS-Add-on aktualisieren.

  5. Sofern erforderlich, aktualisieren Sie Ihre Version von kubectl. Sie müssen eine kubectl-Version verwenden, die nur in der Minor-Version von Ihrer Amazon–EKS-Cluster-Steuerebene abweicht.

Downgrade der Kubernetes-Version für einen Amazon EKS-Cluster

Sie können die Kubernetes eines Amazon EKS-Clusters nicht herunterstufen. Erstellen Sie stattdessen einen neuen Cluster auf einer früheren Amazon EKS-Version und migrieren Sie die Workloads.