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.
Amazon VPC CNI-Plugin für die Verwendung von IRSA konfigurieren
Das Amazon VPC CNI-Plugin für Kubernetes
-
Erfordert AWS Identity and Access Management (IAM) -Berechtigungen. Wenn Ihr Cluster die
IPv4
Familie verwendet, sind die Berechtigungen in derAmazonEKS_CNI_Policy
AWS verwalteten Richtlinie angegeben. Wenn Ihr Cluster dieIPv6
Familie verwendet, müssen die Berechtigungen zu einer von Ihnen erstellten IAM-Richtlinie hinzugefügt werden. Anweisungen finden Sie unterErstellen Sie eine IAM-Richtlinie für Cluster, die die IPv6-Familie verwendet. Sie können diese Richtlinie der Amazon-EKS-Knoten-IAM-Rolle oder einer separaten IAM-Rolle anfügen. Anweisungen zum Anhängen der Richtlinie an die IAM-Rolle des Amazon EKS-Knotens finden Sie unterAmazon-EKS-Knoten-IAM-Rolle. Wir empfehlen Ihnen, sie einer separaten Rolle zuzuweisen, wie in diesem Thema beschrieben. -
Erstellt ein Kubernetes-Dienstkonto, das bei der Bereitstellung benannt wurde
aws-node
, und ist für dessen Verwendung konfiguriert. Das Servicekonto ist an ein Kubernetesclusterrole
namensaws-node
gebunden, dem die erforderlichen Kubernetes-Berechtigungen zugewiesen sind.
Anmerkung
Die Pods für das Amazon VPC CNI-Plug-In für Kubernetes haben Zugriff auf die Berechtigungen, die der IAM-Rolle des Amazon EKS-Knotens zugewiesen sind, sofern Sie den Zugriff auf IMDS nicht blockieren. Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
-
Ein vorhandener Amazon-EKS-Cluster. Informationen zum Bereitstellen finden Sie unter Erste Schritte mit Amazon EKS.
-
Ein vorhandener 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 Erstellen Sie einen IAM-OIDC-Anbieter für Ihren Cluster.
Schritt 1: Erstellen Sie das Amazon VPC CNI-Plug-In für die IAM-Rolle von Kubernetes
-
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 AWS CLI verwenden, um Ihre IAM-Rolle zu erstellen.- eksctl
-
-
Erstellen Sie eine IAM-Rolle und fügen Sie der Rolle die IAM-Richtlinie mit dem Befehl zu, der der IP-Familie Ihres Clusters entspricht. Der Befehl erstellt und stellt einen AWS CloudFormation Stack bereit, der eine IAM-Rolle erstellt, ihr die von Ihnen angegebene Richtlinie anhängt und das vorhandene
aws-node
Kubernetes-Dienstkonto mit dem ARN der erstellten IAM-Rolle annotiert.-
IPv4
Ersetzen Sie
my-cluster
durch Ihren 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 Sie
my-cluster
durch Ihren eigenen Wert. Ersetzen Sie111122223333
durch den Namen Ihres Clusters undAmazonEKS_CNI_IPv6_Policy
durch IhreIPv6
-Richtlinie. Wenn Sie noch keine Richtlinie haben, finden Sie weitere Informationen unter So erstellen Sie eineIPv6
. Erstellen Sie eine IAM-Richtlinie für Cluster, die die IPv6-Familie verwendet 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 die CLI AWS
-
-
Sehen Sie sich die OIDC-Provider-URL Ihres Clusters an.
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 erfolgt, müssen Sie einen IAM-OIDC-Anbieter für Ihr Cluster erstellen.
-
Kopieren Sie den folgenden Inhalt in eine Datei namens
vpc-cni-trust-policy.json
. Ersetzen Sie111122223333
durch die ID Ihres Kontos undEXAMPLED539D4633E53DE1B71EXAMPLE
durch den Wert, der im vorherigen Schritt zurückgegeben wurde.region-code
Ersetzen Sie es durch die 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
AmazonEKSVPCCNIRole
mit einem beliebigen Namen ersetzen, den Sie wählen.aws iam create-role \ --role-name AmazonEKSVPCCNIRole \ --assume-role-policy-document file://"vpc-cni-trust-policy.json"
-
Fügen Sie der Rolle die erforderliche IAM-Richtlinie 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 Sie
111122223333
durch den Namen Ihres Clusters undAmazonEKS_CNI_IPv6_Policy
durch IhreIPv6
-Richtlinie. Wenn Sie noch keineIPv6
Richtlinie haben, finden Sie weitere Informationen unter Erstellen Sie eine IAM-Richtlinie für Cluster, die die IPv6-Familie verwendet 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 und fügen Sie dem
aws-node
-Servicekonto den ARN der IAM-Rolle hinzu, die Sie zuvor erstellt haben. Ersetzen Sieexample values
durch Ihre 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 Kubernetes-Dienstkonto verwendet wird. Weitere Informationen finden Sie unter Den AWS Security Token Service-Endpunkt für ein Dienstkonto konfigurieren.
Schritt 2: Stellen Sie das Amazon VPC CNI-Plugin für Kubernetes Pods erneut bereit
-
Löschen Sie alle vorhandenen Pods, die dem Dienstkonto zugeordnet sind, und erstellen Sie sie neu, um die Umgebungsvariablen für die Anmeldeinformationen anzuwenden. Die Anmerkung wird nicht auf Pods angewendet, die derzeit ohne die Anmerkung ausgeführt werden. Mit dem folgenden Befehl werden die vorhandenen
aws-node
DaemonSet Pods gelöscht und mit der Anmerkung zum Dienstkonto bereitgestellt.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Vergewissern Sie sich, dass alle Pods neu gestartet wurden.
kubectl get pods -n kube-system -l k8s-app=aws-node
-
Beschreiben Sie einen der Pods und stellen Sie sicher, dass die Umgebungsvariablen
AWS_WEB_IDENTITY_TOKEN_FILE
und dieAWS_ROLE_ARN
Umgebungsvariablen existieren.cpjw7
Ersetzen Sie ihn durch den Namen eines Ihrer Pods, der in der Ausgabe des vorherigen Schritts zurückgegeben wurde.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
Es werden zwei Sätze doppelter Ergebnisse zurückgegeben, da der Pod zwei Container enthält. Beide Container haben die gleichen Werte.
Wenn Ihr Pod den AWS regionalen Endpunkt verwendet, 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 Knoten-IAM-Rolle
Wenn Ihrer Amazon EKS-Knoten-IAM-Rolle derzeit die AmazonEKS_CNI_Policy
IAM (IPv4
) -Richtlinie oder eine IPv6 Richtlinie angehängt ist und Sie eine separate IAM-Rolle erstellt, ihr stattdessen die Richtlinie angehängt und sie dem aws-node
Kubernetes-Servicekonto zugewiesen haben, empfehlen wir Ihnen, die Richtlinie mit dem AWS CLI-Befehl, der der IP-Familie Ihres Clusters entspricht, aus Ihrer Knotenrolle zu entfernen. Ersetzen Sie AmazonEKSNodeRole
durch den Namen Ihrer Knotenrolle.
-
IPv4
aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy
-
IPv6
Ersetzen Sie
111122223333
durch den Namen Ihres Clusters undAmazonEKS_CNI_IPv6_Policy
durch IhreIPv6
-Richtlinie.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 verwendet
Wenn Sie einen Cluster erstellt haben, der die IPv6
Familie verwendet, und für den Cluster eine Version 1.10.1
oder eine neuere Version des Amazon VPC CNI-Plug-ins für Kubernetes 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 einen neuen IPv6
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