Arbeiten mit dem Amazon VPC CNI plugin for Kubernetes-Amazon-EKS-Add-on - Amazon EKS

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.

Arbeiten mit dem Amazon VPC CNI plugin for Kubernetes-Amazon-EKS-Add-on

Das Amazon VPC CNI plugin for Kubernetes-Add-On wird auf jedem Amazon-EC2-Knoten in Ihrem Amazon-EKS-Cluster bereitgestellt. Das Add-On erstellt Elastic-Network-Schnittstellen (Netzwerkschnittstellen) und fügt sie an Ihre Amazon-EC2-Knoten an. Das Add-On weist jedem Pod und Service auch eine private IPv4- oder IPv6-Adresse von Ihrer VPC zu.

Eine Version des Add-Ons wird mit jedem Fargate-Knoten in Ihrem Cluster bereitgestellt, aber Sie aktualisieren sie nicht auf Fargate-Knoten. Andere kompatible CNI-Plugins sind für die Verwendung in Amazon-EKS-Clustern verfügbar, aber dies ist das einzige CNI-Plugin, das von Amazon EKS unterstützt wird.

In der folgenden Tabelle finden Sie die neueste Version des Kubernetes-Add-Ons, die für jede Amazon-EKS-Cluster-Version verfügbar ist.

Kubernetes-Version 1.29 1.28 1.27 1.26 1.25 1.24 1.23
VPC-CNI-Version vom Typ Amazon EKS v1.17.1-eksbuild.1 v1.17.1-eksbuild.1 v1.17.1-eksbuild.1 v1.17.1-eksbuild.1 v1.17.1-eksbuild.1 v1.17.1-eksbuild.1 v1.17.1-eksbuild.1
Wichtig

Wenn Sie dieses Add-on selbst verwalten, stimmen die Versionen in der Tabelle möglicherweise nicht mit den verfügbaren selbstverwalteten Versionen überein. Weitere Hinweise zur Aktualisierung des selbstverwalteten Typs dieses Add-ons finden Sie unter Aktualisieren des selbstverwalteten -Add-ons.

Voraussetzungen
Überlegungen
  • Versionen sind angegeben als major-version.minor-version.patch-version-eksbuild.build-number.

  • Überprüfen der Versionskompatibilität für jedes Feature

    Einige Funktionen jeder Version von Amazon VPC CNI plugin for Kubernetes erfordern Kubernetes Zertifizierungsversionen. Wenn Sie verschiedene Amazon-EKS-Features verwenden und eine bestimmte Version des Add-ons erforderlich ist, ist dies in der Featuredokumentationen vermerkt. Falls Sie keinen bestimmten Grund haben, eine frühere Version auszuführen, empfehlen wir, die neueste Version auszuführen.

Add-on vom Typ Amazon EKS erstellen

Erstellen Sie das Add-on vom Typ Amazon EKS.

  1. Sehen Sie, welche Version des Container-Images derzeit auf Ihrem Cluster installiert ist.

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    Eine Beispielausgabe sieht wie folgt aus.

    v1.12.6-eksbuild.2
  2. Sehen Sie, welche Version des Container-Images derzeit auf Ihrem Cluster installiert ist. Je nachdem, mit welchem Tool Sie Ihr Cluster erstellt haben, ist der Add-on vom Typ Amazon EKS möglicherweise derzeit nicht auf Ihrem Cluster installiert. Ersetzen Sie my-cluster durch den Namen Ihres Clusters.

    $ aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text

    Wenn Sie eine Versionsnummer zurückgeben, wird der Amazon-EKS-Typ des Add-Ons auf Ihrem Cluster installiert. Wenn Sie eine Versionsnummer zurückgeben, wird der Amazon-EKS-Typ des Add-Ons auf Ihrem Cluster installiert. Führen Sie die verbleibenden Schritte dieses Prozesses aus, um es zu installieren.

  3. Speichern Sie die Konfiguration Ihres aktuell installierten Add-ons ab.

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  4. Erstellen Sie das Add-on mit dem AWS CLI. Wenn Sie die AWS Management Console oder eksctl zum Erstellen des Add-Ons verwenden möchten, finden Sie weitere Informationen unter Erstellen eines Add-Ons und geben Sie vpc-cni für den Namen des Add-Ons an. Kopieren Sie den folgenden Befehl auf Ihr Gerät. Nehmen Sie bei Bedarf die folgenden Änderungen am Befehl vor, und führen Sie dann den geänderten Befehl aus.

    • Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

    • Ersetzen Sie v1.17.1-eksbuild.1 durch die neueste Version, die in der neuesten Versionstabelle für Ihre Cluster-Version aufgeführt ist.

    • Ersetzen Sie 111122223333 durch Ihre Konto-ID und AmazonEKSVPCCNIRole durch den Namen einer vorhandenen IAM-Rolle, die Sie erstellt haben. Die Angabe einer Rolle erfordert, dass Sie über einen IAM OpenID Connect (OIDC)-Anbieter für Ihren Cluster verfügen. Um festzustellen, ob Sie über einen solchen für Ihren Cluster verfügen, oder um einen zu erstellen, lesen Sie Erstellen eines IAM-OIDC-Anbieters für Ihren Cluster.

    aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.17.1-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole

    Wenn Sie benutzerdefinierte Einstellungen auf Ihr aktuelles Add-on angewendet haben, die mit den Standardeinstellungen des Amazon EKS-Add-ons in Konflikt stehen, schlägt die Erstellung möglicherweise fehl. Wenn die Erstellung fehlschlägt, erhalten Sie eine Fehlermeldung, die Sie bei der Problembehebung unterstützt. Alternativ können Sie den vorherigen Befehl mit --resolve-conflicts OVERWRITE ergänzen. Dadurch kann das Add-on alle vorhandenen benutzerdefinierten Einstellungen überschreiben. Sobald Sie das Add-on erstellt haben, können Sie es mit Ihren benutzerdefinierten Einstellungen aktualisieren.

  5. Vergewissern Sie sich, dass die neueste Version des Add-ons für die Kubernetes-Version Ihres Clusters zu Ihrem Cluster hinzugefügt wurde. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text

    Es kann einige Sekunden dauern, bis die Erstellung des Add-ons abgeschlossen ist.

    Eine Beispielausgabe sieht wie folgt aus.

    v1.17.1-eksbuild.1
  6. Wenn Sie benutzerdefinierte Einstellungen für Ihr ursprüngliches Add-on vorgenommen haben, bevor Sie das Add-on vom Typ Amazon EKS erstellt haben, verwenden Sie die Konfiguration, die Sie in einem vorherigen Schritt gespeichert haben, um das Add-on vom Typ Amazon EKS mit Ihren benutzerdefinierten Einstellungen zu aktualisieren.

  7. (Optional) Installieren Sie cni-metrics-helper in Ihrem Cluster. Es scrapet Informationen zur Elastic Network-Schnittstelle und IP-Adresse, aggregiert sie auf Cluster-Ebene und veröffentlicht die Metriken in Amazon CloudWatch. Weitere Informationen finden Sie unter cni-metrics-helper auf GitHub.

Aktualisieren des Amazon-EKS-Add-ons

Erstellen Sie das Add-on vom Typ Amazon EKS. Wenn Sie das Add-on vom Typ Amazon EKS nicht zu Ihrem Cluster hinzugefügt haben, fügen Sie ihn entweder hinzu oder sehen Sie sich Aktualisieren des selbstverwalteten -Add-ons an, anstatt dieses Verfahren abzuschließen.

  1. Sehen Sie, welche Version des Container-Images derzeit auf Ihrem Cluster installiert ist. Ersetzen Sie my-cluster mit Ihrem Clusternamen.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text

    Eine Beispielausgabe sieht wie folgt aus.

    v1.12.6-eksbuild.2

    Wenn die zurückgegebene Version mit der Version für die Kubernetes-Version Ihres Clusters in der aktuellen Versionstabelle übereinstimmt, haben Sie die neueste Version bereits auf Ihrem Cluster installiert und müssen den Rest dieses Verfahrens nicht abschließen. Wenn Sie eine Fehlermeldung statt einer Versionsnummer in Ihrer Ausgabe erhalten, haben Sie den Add-on vom Typ Amazon EKS nicht auf Ihrem Cluster installiert. Sie müssen das Add-on erstellen, bevor Sie es mit diesem Verfahren aktualisieren können.

  2. Speichern Sie die Konfiguration Ihres aktuell installierten Add-ons ab.

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  3. Aktualisieren Sie Ihr Add-on mit der AWS CLI. Wenn Sie die AWS Management Console oder verwenden möchten, um das Add-on eksctl zu aktualisieren, finden Sie weitere Informationen unter Aktualisieren eines Add-Ons. Kopieren Sie den folgenden Befehl auf Ihr Gerät. Nehmen Sie bei Bedarf die folgenden Änderungen am Befehl vor, und führen Sie dann den geänderten Befehl aus.

    • Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

    • Ersetzen Sie v1.17.1-eksbuild.1 durch die neueste Version, die in der neuesten Versionstabelle für Ihre Cluster-Version aufgeführt ist.

    • Ersetzen Sie 111122223333 durch Ihre Konto-ID und AmazonEKSVPCCNIRole durch den Namen einer vorhandenen IAM-Rolle, die Sie erstellt haben. Die Angabe einer Rolle erfordert, dass Sie über einen IAM OpenID Connect (OIDC)-Anbieter für Ihren Cluster verfügen. Um festzustellen, ob Sie über einen solchen für Ihren Cluster verfügen, oder um einen zu erstellen, lesen Sie Erstellen eines IAM-OIDC-Anbieters für Ihren Cluster.

    • Die --resolve-conflicts-Option PRESERVE (Beibehalten) behält die vorhandenen Werte für das Add-on bei. Wenn Sie benutzerdefinierte Werte für Zusatzeinstellungen festgelegt haben und diese Option nicht verwenden, überschreibt Amazon EKS Ihre Werte mit seinen Standardwerten. Wenn Sie diese Option verwenden, empfehlen wir, dass Sie alle Feld- und Wertänderungen auf einem Nicht-Produktionscluster testen, bevor Sie das Add-on auf Ihrem Produktionscluster aktualisieren. Wenn Sie diesen Wert auf OVERWRITE ändern, werden alle Einstellungen auf die Amazon-EKS-Standardwerte geändert. Wenn Sie benutzerdefinierte Werte für Einstellungen festgelegt haben, werden diese möglicherweise mit den Amazon-EKS-Standardwerten überschrieben. Wenn Sie diesen Wert auf none ändern, ändert Amazon EKS den Wert der Einstellungen nicht, aber das Update schlägt möglicherweise fehl. Wenn das Update fehlschlägt, erhalten Sie eine Fehlermeldung, die Sie bei der Behebung des Konflikts unterstützt.

    • Wenn Sie eine Konfigurationseinstellung nicht aktualisieren, entfernen Sie --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}' aus dem Befehl. Wenn Sie eine Konfigurationseinstellung aktualisieren, ersetzen Sie "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} durch die Einstellung, die Sie festlegen möchten. In diesem Beispiel ist die Umgebungsvariable AWS_VPC_K8S_CNI_EXTERNALSNAT auf true gesetzt. Der von Ihnen angegebene Wert muss für das Konfigurationsschema gültig sein. Wenn Sie das Konfigurationsschema nicht kennen, führen Sie aus aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.17.1-eksbuild.1und ersetzen Sie v1.17.1-eksbuild.1 durch die Versionsnummer des Add-Ons, für das Sie die Konfiguration sehen möchten. Das Schema wird in der Ausgabe zurückgegeben. Wenn Sie bereits eine benutzerdefinierte Konfiguration haben, diese komplett entfernen und die Werte für alle Einstellungen auf die Amazon EKS-Standardwerte zurücksetzen möchten, entfernen Sie "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} aus dem Befehl, sodass nichts übrig bleibt{}. Eine Erläuterung der einzelnen Einstellungen finden Sie unter CNI-Konfigurationsvariablen auf GitHub.

      aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.17.1-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}'

      Es kann einige Sekunden dauern, bis das Update abgeschlossen ist.

  4. Vergewissern Sie sich, dass die Add-on-Version aktualisiert wurde. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni

    Es kann einige Sekunden dauern, bis das Update abgeschlossen ist.

    Eine Beispielausgabe sieht wie folgt aus.

    { "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.17.1-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/vpc-cni/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole", "tags": {}, "configurationValues": "{\"env\":{\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":\"true\"}}" } }

Aktualisieren des selbstverwalteten -Add-ons

Wichtig

Wir empfehlen, den Amazon-EKS-Typ des Add-Ons zu Ihrem Cluster hinzuzufügen, anstatt den selbstverwalteten Typ des Add-Ons zu verwenden. Wenn Sie noch keine Erfahrung mit den Unterschieden zwischen den Typen haben, finden Sie weitere Informationen unter Amazon-EKS-Add-ons. Weitere Informationen zum Hinzufügen eines Amazon-EKS-Add-ons zu Ihrem Cluster finden Sie unter Erstellen eines Add-Ons. Wenn Sie das Amazon-EKS-Add-on nicht verwenden können, empfehlen wir Ihnen, ein Problem zu den Gründen, warum Sie es nicht verwenden können, an das GitHub -Repository für Containers-Roadmap zu senden.

  1. Vergewissern Sie sich, dass Sie nicht den Amazon-EKS-Typ des Add-ons auf Ihrem Cluster installiert haben. Ersetzen Sie my-cluster durch den Namen Ihres Clusters.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text

    Wenn Sie eine Versionsnummer zurückgeben, wird der Amazon-EKS-Typ des Add-ons auf Ihrem Cluster installiert. Um das Add-on selbst zu verwalten, führen Sie die verbleibenden Schritte in diesem Verfahren aus, um das Add-on zu aktualisieren. Wenn Sie eine Versionsnummer zurückgeben, wird der Amazon-EKS-Typ des Add-Ons auf Ihrem Cluster installiert. Verwenden Sie zum Aktualisieren das Verfahren in Aktualisieren eines Add-Ons und nicht das Verfahren in diesem Thema. Wenn Sie mit den Unterschieden zwischen den Add-On-Typen nicht vertraut sind, finden Sie Informationen unter Amazon-EKS-Add-ons.

  2. Sehen Sie, welche Version des Container-Images derzeit auf Ihrem Cluster installiert ist.

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    Eine Beispielausgabe sieht wie folgt aus.

    v1.12.6-eksbuild.2

    Ihre Ausgabe enthält möglicherweise nicht die Build-Nummer.

  3. Sichern Sie Ihre aktuellen Einstellungen, damit Sie dieselben Einstellungen konfigurieren können, wenn Sie Ihre Version aktualisiert haben.

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  4. Um die verfügbaren Versionen anzuzeigen und sich mit den Änderungen in der Version, auf die Sie aktualisieren möchten, vertraut zu machen, siehe releases auf GitHub. Beachten Sie, dass wir empfehlen, auf dieselbe ...-majorminorpatchVersion zu aktualisieren, die in der Tabelle der neuesten verfügbaren Versionen aufgeführt ist, auch wenn spätere Versionen auf verfügbar sind GitHub. Die in der Tabelle aufgeführten Build-Versionen sind in den unter aufgeführten selbstverwalteten Versionen nicht angegeben GitHub. Aktualisieren Sie Ihre Version, indem Sie die Aufgaben mit einer der folgenden Optionen ausführen:

    • Wenn Sie keine benutzerdefinierten Einstellungen für das Add-on haben, führen Sie den Befehl unter der To apply this release: Überschrift auf GitHub für die Version aus, auf die Sie aktualisieren.

    • Wenn Sie benutzerdefinierte Einstellungen haben, laden Sie die Manifestdatei mit dem folgenden Befehl herunter, anstatt sie anzuwenden. Ändern Sie https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.17.1/config/master/aws-k8s-cni.yaml in die URL für die Version, auf GitHub die Sie aktualisieren.

      curl -O https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.17.1/config/master/aws-k8s-cni.yaml

      Ändern Sie bei Bedarf die Datei mit den benutzerdefinierten Einstellungen aus dem von Ihnen erstellten Backup und wenden Sie die geänderte Datei dann auf Ihren Cluster an. Wenn Ihre Knoten keinen Zugriff auf die privaten Amazon-EKS-/ Amazon-ECR-Repositorys haben, aus denen die Images abgerufen werden (siehe die Zeilen, die mit image: im Manifest beginnen), müssen Sie die Images herunterladen, in Ihr eigenes Repository kopieren und das Manifest ändern, um die Images aus Ihrem Repository abzurufen. Weitere Informationen finden Sie unter Kopieren eines Container-Images von einem Repository in ein anderes.

      kubectl apply -f aws-k8s-cni.yaml
      
  5. Vergewissern Sie sich, dass die neue Version jetzt auf Ihrem Cluster installiert ist.

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    Eine Beispielausgabe sieht wie folgt aus.

    v1.17.1
  6. (Optional) Installieren Sie cni-metrics-helper in Ihrem Cluster. Es scrapet Informationen zur Elastic Network-Schnittstelle und IP-Adresse, aggregiert sie auf Cluster-Ebene und veröffentlicht die Metriken in Amazon CloudWatch. Weitere Informationen finden Sie unter cni-metrics-helper auf GitHub.