Einen AWS CloudFormation Knotenstapel aktualisieren - Amazon EKS

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.

Einen AWS CloudFormation Knotenstapel aktualisieren

In diesem Thema wird beschrieben, wie Sie einen vorhandenen AWS CloudFormation selbstverwalteten Knotenstapel mit einem neuen aktualisieren können. AMI Sie können dieses Verfahren verwenden, um Ihre Knoten auf eine neue Version von zu aktualisieren Kubernetes nach einem Cluster-Update. Andernfalls können Sie auf die neueste Version aktualisieren, die Amazon AMI für ein vorhandenes System EKS optimiert hat Kubernetes Version.

Wichtig

In diesem Thema werden Worker-Knotenaktualisierungen für selbstverwaltete Knotengruppen behandelt. Für weitere Informationen zur Nutzung von Vereinfachen Sie den Knotenlebenszyklus mit verwalteten Knotengruppen siehe Aktualisieren Sie eine verwaltete Knotengruppe für Ihren Cluster.

Die neueste EKS AWS CloudFormation Standard-Amazon-Node-Vorlage ist so konfiguriert, dass eine Instance mit der neuen AMI in Ihrem Cluster gestartet wird, bevor eine alte entfernt wird, eine nach der anderen. Diese Konfiguration stellt sicher, dass Sie immer über die gewünschte Anzahl der aktiven Instances Ihre Auto-Scaling-Gruppe in Ihrem Cluster verfügen, während das Update durchgeführt wird.

Anmerkung

Diese Methode wird nicht bei Knoten-Gruppen unterstützt, die mit eksctl erstellt wurden. Wenn Sie Ihr Cluster oder Ihre Worker-Knoten-Gruppe Sie eksctl erstellt haben, finden Sie Informationen unter Anwendungen auf eine neue Knotengruppe migrieren.

So aktualisieren Sie eine vorhandene Worker-Knoten-Gruppe
  1. Ermitteln Sie den DNS Anbieter für Ihren Cluster.

    kubectl get deployments -l k8s-app=kube-dns -n kube-system

    Eine Beispielausgabe sieht wie folgt aus. Dieser Cluster verwendet CoreDNS zur DNS Lösung, aber Ihr Cluster könnte kube-dns stattdessen zurückkehren. Ihre Ausgabe kann je nach verwendeter kubectl-Version anders aussehen.

    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE coredns 1 1 1 1 31m
  2. Wenn Ihre aktuelle Bereitstellung weniger als zwei Replikate ausführt, skalieren die Bereitstellung auf zwei Replikate. Ersetzen Adern mitkube-dns, wenn Ihre vorherige Befehlsausgabe dies stattdessen zurückgegeben hat.

    kubectl scale deployments/coredns --replicas=2 -n kube-system
  3. (Optional) Wenn Sie das verwenden Kubernetes Cluster Autoscaler: Skalieren Sie die Bereitstellung auf null (0) Replikate herunter, um widersprüchliche Skalierungsaktionen zu vermeiden.

    kubectl scale deployments/cluster-autoscaler --replicas=0 -n kube-system
  4. Bestimmen Sie den gewünschten Instance-Typ und die gewünschte Anzahl von Instances Ihrer aktuellen Worker-Knoten-Gruppe. Sie geben diese Werte später ein, wenn Sie die AWS CloudFormation Vorlage für die Gruppe aktualisieren.

    1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Wählen Sie im linken Navigationsbereich Launch Configurations (Startkonfigurationen) aus und beachten Sie den Instance-Typ für die Startkonfiguration der vorhandenen Knoten.

    3. Wählen Sie im linken Navigationsbereich Auto Scaling Groups (Auto-Scaling-Gruppen) aus und beachten Sie die Desired (gewünschte) Instance-Anzahl für die Auto-Scaling-Gruppe der vorhandenen Knoten.

  5. Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  6. Wählen Sie Ihren Workerknoten-Gruppen-Stack aus und klicken Sie dann auf Update (Aktualisieren).

  7. Wählen Sie Aktuelle Vorlage ersetzen und anschließend Amazon S3 ausURL.

  8. Fügen Sie für Amazon S3 URL Folgendes URL in den Textbereich ein, um sicherzustellen, dass Sie die neueste Version der AWS CloudFormation Node-Vorlage verwenden. Klicken Sie dann auf Next (Weiter):

    https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2022-12-23/amazon-eks-nodegroup.yaml
  9. Geben Sie auf der Seite Specify stack details (Stack-Details angeben) die folgenden Parameter ein und wählen Sie Next (Weiter) aus:

    • NodeAutoScalingGroupDesiredCapacity— Geben Sie die gewünschte Anzahl von Instanzen ein, die Sie in einem vorherigen Schritt aufgezeichnet haben. Oder geben Sie die neue gewünschte Anzahl von Knoten ein, auf die bei der Aktualisierung Ihres Stacks skaliert werden soll.

    • NodeAutoScalingGroupMaxSize— Geben Sie die maximale Anzahl von Knoten ein, auf die Ihre Node-Auto-Scaling-Gruppe skalieren kann. Dieser Wert muss mindestens einen Knoten größer sein als Ihre gewünschte Kapazität. Auf diese Weise können Sie eine fortlaufende Aktualisierung Ihrer Knoten durchführen, ohne die Knotenanzahl während der Aktualisierung zu reduzieren.

    • NodeInstanceType— Wählen Sie den Instance-Typ, den Sie in einem vorherigen Schritt aufgezeichnet haben. Wählen Sie alternativ einen anderen Instance-Typ für Ihre Knoten aus. Bevor Sie einen Instance-Typ auswählen, lesen Sie Wählen Sie einen optimalen EC2 Amazon-Node-Instance-Typ. Jeder EC2 Amazon-Instance-Typ unterstützt eine maximale Anzahl von elastischen Netzwerkschnittstellen (Netzwerkschnittstelle) und jede Netzwerkschnittstelle unterstützt eine maximale Anzahl von IP-Adressen. Weil jeder Worker-Knoten und Pod , eine eigene IP-Adresse zugewiesen wird, ist es wichtig, einen Instanztyp zu wählen, der die maximale Anzahl von unterstützt Pods die Sie auf jedem EC2 Amazon-Knoten ausführen möchten. Eine Liste der Netzwerkschnittstellen und IP-Adressen, die von Instance-Typen unterstützt werden, finden Sie unter IP-Adressen pro Netzwerkschnittstelle pro Instance-Typ. Beispielsweise unterstützt der m5.large Instance-Typ maximal 30 IP-Adressen für den Worker-Knoten und Pods.

      Anmerkung

      Die unterstützten Instance-Typen für die neueste Version von Amazon VPC CNI plugin for Kuberneteswerden in vpc_ip_resource_limit.go angezeigt auf GitHub. Möglicherweise müssen Sie Ihre aktualisieren Amazon VPC CNI plugin for Kubernetes Version, um die neuesten unterstützten Instance-Typen zu verwenden. Weitere Informationen finden Sie unter Zuweisen IPs zu Pods mit dem Amazon VPC CNI.

      Wichtig

      Einige Instanztypen sind möglicherweise nicht in allen verfügbar AWS-Regionen.

    • NodeImageIdSSMParam— Der Amazon EC2 Systems Manager Manager-Parameter der AMI ID, auf die Sie aktualisieren möchten. Der folgende Wert verwendet die neueste Version, AMI für die Amazon EKS optimiert ist Kubernetes Version1.31.

      /aws/service/eks/optimized-ami/1.31/amazon-linux-2/recommended/image_id

      Sie können es 1.31 durch eine unterstützte ersetzen Kubernetes Version, die dieselbe ist. Oder es sollte bis zu einer Version vor der sein Kubernetes Version, die auf Ihrer Steuerebene läuft. Es wird empfohlen, die Knoten auf der gleichen Version wie die Steuerungsebene zu halten. Sie können sie auch amazon-linux-2 durch einen anderen AMI Typ ersetzen. Weitere Informationen finden Sie unter Rufen Sie das empfohlene Amazon Linux ab AMI IDs.

      Anmerkung

      Mithilfe des Amazon EC2 Systems Manager Manager-Parameters können Sie Ihre Knoten in future aktualisieren, ohne eine AMI ID suchen und angeben zu müssen. Wenn Ihr AWS CloudFormation Stack diesen Wert verwendet, startet jedes Stack-Update immer die neueste empfohlene, von Amazon EKS optimierte Version AMI für Ihren angegebenen Wert. Kubernetes Version. Dies ist auch dann der Fall, wenn Sie keine Werte in der Vorlage ändern.

    • NodeImageId— Um Ihre eigene benutzerdefinierte zu verwendenAMI, geben Sie die ID ein, die verwendet werden AMI soll.

      Wichtig

      Dieser Wert überschreibt jeden Wert, der für NodeImageIdSSMParamangegeben wurde. Wenn Sie den NodeImageIdSSMParamWert verwenden möchten, stellen Sie sicher, dass der Wert für leer NodeImageIdist.

    • D isableIMDSv 1 — Standardmäßig unterstützt jeder Knoten den Instanz-Metadatendienst Version 1 (IMDSv1) undIMDSv2. Sie können es jedoch deaktivierenIMDSv1. Wählen Sie true aus, wenn Sie keine oder keine Knoten haben möchten Pods in der zu verwendenden Knotengruppe geplantIMDSv1. Weitere Informationen dazu finden Sie IMDS unter Konfiguration des Instanz-Metadatendienstes. Wenn Sie IAM Rollen für Dienstkonten implementiert haben, weisen Sie allen die erforderlichen Berechtigungen direkt zu Pods die Zugriff auf AWS Dienste erfordern. Auf diese Weise, nein Pods in Ihrem Cluster benötigen Sie Zugriff auf aus anderen IMDS Gründen, z. B. zum Abrufen des aktuellen AWS-Region Dann können Sie auch den Zugriff auf deaktivieren für IMDSv2 Pods die kein Host-Netzwerk verwenden. Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist.

  10. (Optional) Markieren Sie auf der Seite Options (Optionen) Ihre Stack-Ressourcen. Wählen Sie Next (Weiter).

  11. Überprüfen Sie auf der Seite Überprüfen Ihre Informationen, bestätigen Sie, dass der Stack möglicherweise IAM Ressourcen generiert, und wählen Sie dann Stack aktualisieren aus.

    Anmerkung

    Die Aktualisierung jedes Knotens im Cluster dauert mehrere Minuten. Warten Sie, bis die Aktualisierung aller Knoten abgeschlossen ist, bevor Sie die nächsten Schritte durchführen.

  12. Wenn es der DNS Anbieter Ihres Clusters istkube-dns, skalieren Sie die kube-dns Bereitstellung auf ein Replikat.

    kubectl scale deployments/kube-dns --replicas=1 -n kube-system
  13. (Optional) Wenn Sie das verwenden Kubernetes Cluster Autoscaler: Skalieren Sie die Bereitstellung wieder auf die gewünschte Anzahl von Replikaten.

    kubectl scale deployments/cluster-autoscaler --replicas=1 -n kube-system
  14. (Optional) Stellen Sie sicher, dass Sie die neueste Version von verwenden Amazon VPC CNI plugin for Kubernetes. Möglicherweise müssen Sie Ihre aktualisieren Amazon VPC CNI plugin for Kubernetes Version, um die neuesten unterstützten Instance-Typen zu verwenden. Weitere Informationen finden Sie unter Zuweisen IPs zu Pods mit dem Amazon VPC CNI.