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 der Amazon VPC CNI plugin for Kubernetes zur Verwendung von IAM-Rollen für Servicekonten (IRSA)
Das Amazon VPC CNI plugin for Kubernetes
-
Erfordert AWS Identity and Access Management (IAM)-Berechtigungen. Wenn Ihr Cluster die IPv4-Familie verwendet, werden die Berechtigungen in der
AmazonEKS_CNI_Policy
AWS verwalteten Richtlinie angegeben. Wenn Ihr Cluster die IPv6-Familie verwendet, müssen die Berechtigungen einer von Ihnen erstellten IAM-Richtlinie hinzugefügt werden. Sie können diese Richtlinie der Amazon-EKS-Knoten-IAM-Rolle oder einer separaten IAM-Rolle anfügen. Wir empfehlen Ihnen, sie einer separaten Rolle zuzuweisen, wie in diesem Thema beschrieben. -
Erstellt ein Kubernetes-Servicekonto namens
aws-node
und ist so konfiguriert, dass es bei der Bereitstellung verwendet wird. Das Servicekonto ist an eine Kubernetesclusterrole
namensaws-node
gebunden, der die erforderlichen Kubernetes-Berechtigungen zugewiesen sind.
Anmerkung
Die Pods für das Amazon VPC CNI plugin for Kubernetes haben Zugriff auf die Berechtigungen, die der Amazon-EKS-Knoten-IAM-Rolle zugewiesen sind, es sei denn, Sie blockieren den Zugriff auf IMDS. Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist
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) 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 OIDC IAM-Anbieter für Ihren Cluster.
Schritt 1: Erstellen Sie die IAM-Rolle für das Amazon VPC CNI plugin for Kubernetes
So erstellen Sie die IAM-Rolle
-
Ermitteln Sie die IP-Familie Ihres Clusters.
aws eks describe-cluster --name
my-cluster
| grep ipFamilyEine Beispielausgabe sieht wie folgt aus.
"ipFamily": "ipv
4
"Die Ausgabe kann stattdessen
ipv6
zurückgeben. -
Erstellen Sie die IAM-Rolle. Sie können
eksctl
oderkubectl
und verwenden AWS CLI , um Ihre IAM-Rolle zu erstellen. (Optional) Konfigurieren Sie den AWS Security Token Service Endpunkttyp, der von Ihrem Kubernetes Servicekonto verwendet wird. Weitere Informationen finden Sie unter Den AWS Security Token Service Endpunkt für ein Dienstkonto konfigurieren.
Schritt 2: Stellen Sie Amazon VPC CNI plugin for KubernetesPods erneut bereit
-
Löschen Sie alle vorhandenen Pods, die dem Servicekonto zugeordnet sind, und erstellen Sie sie neu, um die Umgebungsvariablen für Anmeldeinformationen anzuwenden. Die Anmerkung wird nicht auf Pods angewendet, die derzeit ohne die Anmerkung laufen. Mit dem folgenden Befehl werden die vorhandenen
aws-node
DaemonSet Pods gelöscht und mit der Servicekonto-Anmerkung bereitgestellt.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Bestätigen Sie, dass alle Pods neu gestartet wurden.
kubectl get pods -n kube-system -l k8s-app=aws-node
-
Beschreiben Sie einen der Pods und überprüfen Sie, ob die Umgebungsvariablen
AWS_WEB_IDENTITY_TOKEN_FILE
undAWS_ROLE_ARN
vorhanden sind. Ersetzen Siecpjw7
mit dem 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/tokenZwei Sätze doppelter Ergebnisse werden zurückgegeben, da der Pod zwei Container enthält. Beide Container haben die gleichen Werte.
Wenn Ihr den AWS-Region-Endpunkt Pod verwendet, wird in der vorherigen Ausgabe auch die folgende Zeile 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-Richtlinie (IPv4
) oder eine -IPv6Richtlinie zugeordnet ist und Sie stattdessen eine separate IAM-Rolle erstellt, ihr die Richtlinie angefügt und sie dem aws-node
Kubernetes Servicekonto zugewiesen haben, empfehlen wir Ihnen, die Richtlinie mit dem AWS CLI Befehl aus Ihrer Knotenrolle zu entfernen, der der IP-Familie Ihres Clusters entspricht. Ersetzen Sie
durch den Namen Ihrer Knotenrolle.AmazonEKSNodeRole
-
IPv4
aws iam detach-role-policy --role-name
AmazonEKSNodeRole
--policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy -
IPv6
Ersetzen Sie
durch den Namen Ihres Clusters und111122223333
durch IhreAmazonEKS_CNI_IPv6_Policy
IPv6
-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 der Cluster Version 1.10.1
oder höher des Amazon VPC CNI plugin for Kubernetes -Add-ons konfiguriert hat, müssen Sie eine IAM-Richtlinie erstellen, die Sie einer IAM-Rolle zuweisen können. Wenn Sie einen vorhandenen Cluster haben, den Sie bei der Erstellung nicht mit der IPv6
-Familie konfiguriert haben, müssen Sie zur Verwendung von IPv6
einen neuen Cluster erstellen. Weitere Informationen zur Verwendung von IPv6
mit Ihrem Cluster finden Sie unter IPv6Adressen für ClusterPods, und services.
-
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