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

Helfen Sie 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.

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.30 1.29 1.28 1.27 1.26 1.25 1.24 1.23
VPC-CNI-Version vom Typ Amazon EKS v1.18.2-eksbuild.1 v1.18.2-eksbuild.1 v1.18.2-eksbuild.1 v1.18.2-eksbuild.1 v1.18.2-eksbuild.1 v1.18.2-eksbuild.1 v1.18.2-eksbuild.1 v1.18.2-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.

Wichtig

Um auf VPC CNI v1.12.0 oder höher zu aktualisieren, müssen Sie zuerst auf VPC CNI v1.7.0 aktualisieren. Wir empfehlen Ihnen, jeweils eine Nebenversion zu aktualisieren.

Voraussetzungen
  • Ein vorhandener Amazon-EKS-Cluster. Informationen zum Bereitstellen finden Sie unter Erste Schritte mit Amazon EKS.

  • Ein vorhandener AWS Identity and Access Management (IAM) () -Anbieter für Ihren Cluster. OpenID Connect OIDC Informationen zum Feststellen, ob Sie bereits über einen verfügen oder einen erstellen müssen, finden Sie unter Erstellen Sie einen OIDC IAM-Anbieter für Ihren Cluster.

  • Eine IAM-Rolle mit angefügter AmazonEKS_CNI_Policy-IAM-Richtlinie (wenn Ihr Cluster die IPv4-Produktfamilie verwendet) oder IPv6-Richtlinie (wenn Ihr Cluster die IPv6-Familie verwendet). Weitere Informationen finden Sie unter Konfigurieren der Amazon VPC CNI plugin for Kubernetes zur Verwendung von IAM-Rollen für Servicekonten (IRSA).

  • Wenn Sie Version 1.7.0 oder höher des Amazon VPC CNI plugin for Kubernetes verwenden und benutzerdefinierte Pod-Sicherheitsrichtlinien verwenden, siehe Löschen der standardmäßigen Amazon-EKS-Pod-SicherheitsrichtliniePod-Sicherheitsrichtlinie.

  • Wichtig

    Amazon VPC CNI plugin for KubernetesVersionenv1.16.0, bei denen die Kompatibilität mit Kubernetes Versionen 1.23 und früheren Versionen v1.16.1 entfernt wurde. Die VPC CNI-Version v1.16.2 stellt die Kompatibilität mit Kubernetes Versionen 1.23 und früheren Versionen sowie mit den CNI-Spezifikationen wieder her. v0.4.0

    Amazon VPC CNI plugin for KubernetesVersionen v1.16.0 zur v1.16.1 Implementierung der CNI-Spezifikationsversion. v1.0.0 Die CNI-Spezifikation v1.0.0 wird auf EKS-Clustern unterstützt, auf denen die Kubernetes Versionen v1.24 oder höher ausgeführt werden. VPC CNI-Version v1.16.0 bis v1.16.1 und CNI-Spezifikation v1.0.0 werden in Version oder früher nicht unterstützt. Kubernetes v1.23 Weitere Informationen v1.0.0 zur CNI-Spezifikation finden Sie unter Container Network Interface (CNI) -Spezifikation auf

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

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

    Für einige Funktionen der einzelnen Versionen sind bestimmte Versionen Amazon VPC CNI plugin for Kubernetes erforderlich. Kubernetes 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.16.4-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 das AWS Management Console oder verwenden möchten, um das Add-on eksctl zu erstellen, finden Sie weitere Informationen unter Erstellen eines Add-Ons und geben Sie vpc-cni 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.18.2-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 Sie einen OIDC IAM-Anbieter für Ihren Cluster.

    aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.18.2-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.18.2-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 erfasst elastic network interface- und IP-Adressinformationen, aggregiert sie auf Clusterebene und veröffentlicht die Metriken auf Amazon. CloudWatch Weitere Informationen finden Sie unter cni-metrics-helper on. 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.16.4-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 das AWS Management Console oder verwenden möchten, um das Add-on zu aktualisiereneksctl, finden Sie 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.18.2-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 Sie einen OIDC IAM-Anbieter 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 kennenaws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.18.2-eksbuild.1, führen Sie den Befehl aus und ersetzen Sie v1.18.2-eksbuild.1 durch die Versionsnummer des Add-ons, für das Sie die Konfiguration anzeigen 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.18.2-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.18.2-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 mit der Begründung, warum Sie das nicht können, an das GitHub Container-Roadmap-Repository 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.16.4-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 dasselbe major zu aktualisieren. minor. patchDie Version ist in der Tabelle mit den neuesten verfügbaren Versionen aufgeführt, auch wenn spätere Versionen verfügbar sind auf GitHub.. Die in der Tabelle aufgeführten Buildversionen sind nicht in den selbstverwalteten Versionen aufgeführt, die unter GitHub aufgeführt sind. 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 GitHub für die Version aus, auf die Sie aktualisieren möchten.

    • 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.18.2/config/master/aws-k8s-cni.yaml in die URL für die Version GitHub , auf die Sie aktualisieren möchten.

      curl -O https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.18.2/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.18.2
  6. (Optional) Installieren Sie cni-metrics-helper in Ihrem Cluster. Es erfasst elastic network interface- und IP-Adressinformationen, aggregiert sie auf Clusterebene und veröffentlicht die Metriken auf Amazon. CloudWatch Weitere Informationen finden Sie unter cni-metrics-helper on. GitHub