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.
Konfigurieren Sie VPC CNI das zu verwendende Amazon-Plugin IRSA
Das VPCCNIAmazon-Plugin für Kubernetes
-
Erfordert AWS Identity and Access Management Zugriffsverwaltungsberechtigungen (IAM). Wenn Ihr Cluster die
IPv4
Familie verwendet, sind die Berechtigungen in der AWS verwalteten Richtlinie `Amazon EKS _ CNI _Policy` spezifiziert.Wenn Ihr Cluster dieIPv6
Familie verwendet, müssen die Berechtigungen zu einer von Ihnen erstellten IAM Richtlinie hinzugefügt werden. Anweisungen finden Sie unter. Erstellen Sie eine IAM Richtlinie für Cluster, die die IPv6 Familie verwenden Sie können die Richtlinie an die EKS IAM Amazon-Knotenrolle oder an eine separate IAM Rolle anhängen. Anweisungen zum Anhängen der Richtlinie an die EKS IAM Amazon-Knotenrolle finden Sie unterIAMRolle des EKS Amazon-Knotens. Wir empfehlen Ihnen, sie einer separaten Rolle zuzuweisen, wie in diesem Thema beschrieben. -
Erzeugt und ist für die Verwendung von konfiguriert Kubernetes Dienstkonto
aws-node
, das bei der Bereitstellung benannt wurde. Das Dienstkonto ist gebunden an ein Kubernetesclusterrole
benanntaws-node
, welchem das Erforderliche zugewiesen ist Kubernetes Berechtigungen.
Anmerkung
Das Tool Pods für die Amazon VPC CNI plugin for Kubernetes Zugriff auf die der EKSIAMAmazon-Knotenrolle zugewiesenen Berechtigungen haben, es sei denn, Sie blockieren den Zugriff aufIMDS. Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
-
Ein vorhandener EKS Amazon-Cluster. Informationen zum Bereitstellen finden Sie unter Erste Schritte mit Amazon EKS.
-
Ein bestehendes AWS Identity and Access Management (IAM) OpenID Connect (OIDC) Anbieter für Ihren Cluster. Informationen zum Feststellen, ob Sie bereits über einen verfügen oder einen erstellen müssen, finden Sie unter Erstelle eine IAM OIDC Anbieter für Ihren Cluster.
Schritt 1: Erstellen Sie das Amazon VPC CNI plugin for Kubernetes IAMRolle
-
Ermitteln Sie die IP-Familie Ihres Clusters.
aws eks describe-cluster --name my-cluster | grep ipFamily
Eine Beispielausgabe sieht wie folgt aus.
"ipFamily": "ipv4"
Die Ausgabe kann stattdessen
ipv6
zurückgeben. -
Erstellen Sie die IAM Rolle. Sie können
eksctl
oderkubectl
und die verwenden AWS CLI, um Ihre IAM Rolle zu erstellen.- eksctl
-
-
Erstellen Sie eine IAM Rolle und fügen Sie der Rolle die IAM Richtlinie mit dem Befehl hinzu, der der IP-Familie Ihres Clusters entspricht. Mit dem Befehl wird ein AWS CloudFormation Stack erstellt und bereitgestellt, der eine IAM Rolle erstellt, ihr die von Ihnen angegebene Richtlinie anfügt und die vorhandenen mit Anmerkungen versehen
aws-node
Kubernetes Dienstkonto mit ARN der IAM Rolle, die erstellt wird.-
IPv4
Ersetzen
my-cluster
mit deinem eigenen Wert.eksctl create iamserviceaccount \ --name aws-node \ --namespace kube-system \ --cluster my-cluster \ --role-name AmazonEKSVPCCNIRole \ --attach-policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \ --override-existing-serviceaccounts \ --approve
-
IPv6
Ersetzen
my-cluster
mit deinem eigenen Wert. Ersetzen111122223333
mit deiner Konto-ID und ersetzeAmazonEKS_CNI_IPv6_Policy
mit dem Namen IhrerIPv6
Police. Wenn Sie noch keineIPv6
Richtlinie haben, finden Sie weitere Informationen unter Erstellen Sie eine IAM Richtlinie für Cluster, die die IPv6 Familie verwenden So erstellen Sie eine. UmIPv6
mit Ihrem Cluster zu verwenden, muss dieser mehrere Anforderungen erfüllen. Weitere Informationen finden Sie unter Erfahren Sie mehr über IPv6 Adressen für Cluster, pods, und Dienste.eksctl create iamserviceaccount \ --name aws-node \ --namespace kube-system \ --cluster my-cluster \ --role-name AmazonEKSVPCCNIRole \ --attach-policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --override-existing-serviceaccounts \ --approve
-
-
- kubectl und der AWS CLI
-
-
Sehen Sie sich den Anbieter Ihres Clusters an. OIDC URL
aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
Eine Beispielausgabe sieht wie folgt aus.
https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
Wenn keine Ausgabe zurückgegeben wird, müssen Sie einen IAM OIDC Anbieter für Ihren Cluster erstellen.
-
Kopieren Sie den folgenden Inhalt in eine Datei mit dem Namen
vpc-cni-trust-policy.json
. Ersetzen111122223333
mit deiner Konto-ID undEXAMPLED539D4633E53DE1B71EXAMPLE
mit der im vorherigen Schritt zurückgegebenen Ausgabe. Ersetzenregion-code
mit der AWS Region, in der sich Ihr Cluster befindet.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws: iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:aws-node" } } } ] }
-
Erstellen Sie die -Rolle. Sie können ersetzen
AmazonEKSVPCCNIRole
mit einem beliebigen Namen, den Sie wählen.aws iam create-role \ --role-name AmazonEKSVPCCNIRole \ --assume-role-policy-document file://"vpc-cni-trust-policy.json"
-
Hängen Sie die erforderliche IAM Richtlinie an die Rolle an. Führen Sie den Befehl aus, der der IP-Familie Ihres Clusters entspricht.
-
IPv4
aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSVPCCNIRole
-
IPv6
Ersetzen
111122223333
mit Ihrer Konto-ID undAmazonEKS_CNI_IPv6_Policy
mit dem Namen IhrerIPv6
Police. Wenn Sie noch keineIPv6
Richtlinie haben, finden Sie weitere Informationen unter Erstellen Sie eine IAM Richtlinie für Cluster, die die IPv6 Familie verwenden So erstellen Sie eine. UmIPv6
mit Ihrem Cluster zu verwenden, muss dieser mehrere Anforderungen erfüllen. Weitere Informationen finden Sie unter Erfahren Sie mehr über IPv6 Adressen für Cluster, pods, und Dienste.aws iam attach-role-policy \ --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSVPCCNIRole
-
-
Führen Sie den folgenden Befehl aus, um das
aws-node
Dienstkonto mit ARN der IAM Rolle zu versehen, die Sie zuvor erstellt haben. Ersetzen Sie denexample values
durch deine eigenen Werte.kubectl annotate serviceaccount \ -n kube-system aws-node \ eks.amazonaws.com/role-arn=arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole
-
-
(Optional) Konfigurieren Sie den AWS Security Token Service-Endpunkttyp, der von Ihrem verwendet wird Kubernetes Dienstkonto. Weitere Informationen finden Sie unter Den AWS Security Token Service-Endpunkt für ein Dienstkonto konfigurieren.
Schritt 2: Erneute Bereitstellung Amazon VPC CNI plugin for KubernetesPods
-
Löschen Sie alle vorhandenen und erstellen Sie sie neu Pods die dem Dienstkonto zugeordnet sind, um die Umgebungsvariablen für die Anmeldeinformationen anzuwenden. Die Anmerkung wird nicht angewendet auf Pods die derzeit ohne die Anmerkung ausgeführt werden. Der folgende Befehl löscht die vorhandenen
aws-node
DaemonSet Pods und stellt sie mit der Anmerkung zum Dienstkonto bereit.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Bestätigen Sie, dass Pods alles neu gestartet.
kubectl get pods -n kube-system -l k8s-app=aws-node
-
Beschreiben Sie einen der Pods und stellen Sie sicher, dass die
AWS_ROLE_ARN
UmgebungsvariablenAWS_WEB_IDENTITY_TOKEN_FILE
und vorhanden sind. Ersetzencpjw7
mit dem Namen eines Ihrer Pods wurde in der Ausgabe des vorherigen Schritts zurückgegeben.kubectl describe pod -n kube-system aws-node-cpjw7 | grep 'AWS_ROLE_ARN:\|AWS_WEB_IDENTITY_TOKEN_FILE:'
Eine Beispielausgabe sieht wie folgt aus.
AWS_ROLE_ARN: arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token AWS_ROLE_ARN: arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole AWS_WEB_IDENTITY_TOKEN_FILE: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
Zwei Sätze doppelter Ergebnisse werden zurückgegeben, weil Pod enthält zwei Container. Beide Container haben die gleichen Werte.
Wenn Ihre Pod verwendet den AWS regionalen Endpunkt, dann wird die folgende Zeile auch in der vorherigen Ausgabe zurückgegeben.
AWS_STS_REGIONAL_ENDPOINTS=regional
Schritt 3: Entfernen Sie die CNI Richtlinie aus der IAM Knotenrolle
Wenn an Ihre EKSIAMAmazon-Knotenrolle derzeit die Richtlinie AmazonEKS_CNI_Policy
IAM (IPv4
) oder eine IPv6Richtlinie angehängt ist und Sie eine separate IAM Rolle erstellt haben, haben Sie stattdessen die Richtlinie angehängt und sie der aws-node
Kubernetes Service-Konto, dann empfehlen wir Ihnen, die Richtlinie mit dem AWS CLI Befehl, der der IP-Familie Ihres Clusters entspricht, aus Ihrer Knotenrolle zu entfernen. Ersetzen AmazonEKSNodeRole
mit dem Namen Ihrer Knotenrolle.
-
IPv4
aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy
-
IPv6
Ersetzen
111122223333
mit deiner Konto-ID undAmazonEKS_CNI_IPv6_Policy
mit dem Namen IhrerIPv6
Police.aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy
Erstellen Sie eine IAM Richtlinie für Cluster, die die IPv6
Familie verwenden
Wenn Sie einen Cluster erstellt haben, der die IPv6
Familie verwendet, und der Cluster hat die Version 1.10.1
oder eine neuere Version von Amazon VPC CNI plugin for Kubernetes Wenn das Add-on konfiguriert ist, müssen Sie eine IAM Richtlinie erstellen, die Sie einer IAM Rolle zuweisen können. Wenn Sie über einen vorhandenen Cluster verfügen, den Sie bei der Erstellung nicht mit der IPv6
Familie konfiguriert haben, müssen Sie zur Verwendung IPv6
einen neuen Cluster erstellen. Weitere Informationen zur Verwendung von IPv6
mit Ihrem Cluster finden Sie unter Erfahren Sie mehr über IPv6 Adressen für Cluster, pods, und Dienste.
-
Kopieren Sie den folgenden Text und speichern Sie ihn in einer Datei mit dem Namen
vpc-cni-ipv6-policy.json
.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws: ec2:*:*:network-interface/*" ] } ] }
-
Erstellen Sie die IAM Richtlinie.
aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json