Aiutaci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configura il VPC CNI plug-in Amazon da utilizzare IRSA
Il VPCCNIplug-in Amazon per Kubernetes
-
Richiede le autorizzazioni AWS Identity and Access Management (IAM). Se il tuo cluster utilizza la
IPv4
famiglia, le autorizzazioni sono specificate nella politica AWS gestita `Amazon EKS _ CNI _Policy`. Se il tuo cluster utilizza laIPv6
famiglia, le autorizzazioni devono essere aggiunte a una IAM politica che crei; per istruzioni, consulta. Crea IAM policy per i cluster che utilizzano la famiglia IPv6 Puoi collegare la policy al IAM ruolo del EKS nodo Amazon o a un IAM ruolo separato. Per istruzioni su come allegare la policy al IAM ruolo del EKS nodo Amazon, consultaIAMRuolo EKS del nodo Amazon. Si consiglia di assegnarlo a un ruolo separato, come descritto in questo argomento. -
Crea ed è configurato per utilizzare un Kubernetes account di servizio denominato al
aws-node
momento della distribuzione. L'account di servizio è associato a Kubernetesclusterrole
denominatoaws-node
, a cui viene assegnato il valore richiesto Kubernetes autorizzazioni.
Nota
Il Pods per Amazon VPC CNI plugin for Kubernetes avere accesso alle autorizzazioni assegnate al IAMruolo del EKS nodo Amazon, a meno che tu non blocchi l'accesso aIMDS. Per ulteriori informazioni, consulta Limitazione dell'accesso al profilo dell'istanza assegnato al nodo worker
-
Un EKS cluster Amazon esistente. Per implementarne uno, consulta Inizia a usare Amazon EKS.
-
Un AWS Identity and Access Management esistente (IAM) OpenID Connect (OIDC) provider per il tuo cluster. Per determinare se disponi già di un provider IAM o per crearne uno, consulta Creazione di un IAM OIDC provider per il tuo cluster.
Fase 1: Creare il Amazon VPC CNI plugin for Kubernetes IAMruolo
-
Determina la famiglia IP del cluster.
aws eks describe-cluster --name my-cluster | grep ipFamily
Di seguito viene riportato un output di esempio:
"ipFamily": "ipv4"
L'output potrebbe invece restituire
ipv6
. -
Crea il IAM ruolo. Puoi usare
eksctl
orkubectl
and the AWS CLI per creare il tuo IAM ruolo.- eksctl
-
-
Crea un IAM ruolo e associa la IAM policy al ruolo con il comando che corrisponde alla famiglia IP del tuo cluster. Il comando crea e distribuisce uno AWS CloudFormation stack che crea un IAM ruolo, allega la policy specificata e annota quella esistente
aws-node
Kubernetes account di servizio con il ARN IAM ruolo creato.-
IPv4
Replace (Sostituisci)
my-cluster
con il tuo valore.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
Replace (Sostituisci)
my-cluster
con il tuo valore. Replace (Sostituisci)111122223333
con l'ID del tuo account e sostituisciAmazonEKS_CNI_IPv6_Policy
con il nome della tuaIPv6
polizza. Se non disponi di unaIPv6
politica, consulta Crea IAM policy per i cluster che utilizzano la famiglia IPv6 per crearne una. Per utilizzareIPv6
con il cluster, questo deve soddisfare diversi requisiti. Per ulteriori informazioni, consulta Scopri IPv6 gli indirizzi verso i cluster, podse servizi.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 e il AWS CLI
-
-
Visualizza il provider del tuo cluster. OIDC URL
aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
Di seguito viene riportato un output di esempio:
https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
Se non viene restituito alcun output, è necessario creare un IAM OIDC provider per il cluster.
-
Copia il seguente contenuto in un file denominato
vpc-cni-trust-policy.json
. Sostituisci111122223333
con l'ID del tuo account eEXAMPLED539D4633E53DE1B71EXAMPLE
con l'output restituito nel passaggio precedente. Replace (Sostituisci)region-code
con la AWS regione in cui si trova il cluster.{ "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" } } } ] }
-
Crea il ruolo. Puoi sostituire
AmazonEKSVPCCNIRole
con qualsiasi nome tu scelga.aws iam create-role \ --role-name AmazonEKSVPCCNIRole \ --assume-role-policy-document file://"vpc-cni-trust-policy.json"
-
Allega la IAM politica richiesta al ruolo. Esegui il comando corrispondente alla famiglia IP del cluster.
-
IPv4
aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSVPCCNIRole
-
IPv6
Replace (Sostituisci)
111122223333
con l'ID del tuo account eAmazonEKS_CNI_IPv6_Policy
con il nome della tuaIPv6
polizza. Se non disponi di unaIPv6
politica, consulta Crea IAM policy per i cluster che utilizzano la famiglia IPv6 per crearne una. Per utilizzareIPv6
con il cluster, questo deve soddisfare diversi requisiti. Per ulteriori informazioni, consulta Scopri IPv6 gli indirizzi verso i cluster, podse servizi.aws iam attach-role-policy \ --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSVPCCNIRole
-
-
Esegui il comando seguente per annotare l'account ARN di
aws-node
servizio con il IAM ruolo che hai creato in precedenza. Sostituisci ilexample values
con i tuoi valori.kubectl annotate serviceaccount \ -n kube-system aws-node \ eks.amazonaws.com/role-arn=arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole
-
-
(Facoltativo) Configura il tipo di endpoint del servizio AWS Security Token utilizzato dal Kubernetes account di servizio. Per ulteriori informazioni, consulta Configurare l'endpoint del servizio AWS Security Token per un account di servizio.
Fase 2: Ridistribuzione Amazon VPC CNI plugin for KubernetesPods
-
Eliminare e ricreare qualsiasi elemento esistente Pods che sono associati all'account di servizio per applicare le variabili di ambiente delle credenziali. L'annotazione non viene applicata a Pods che sono attualmente in esecuzione senza l'annotazione. Il comando seguente elimina l'esistente
aws-node
DaemonSet Pods e li distribuisce con l'annotazione dell'account di servizio.kubectl delete Pods -n kube-system -l k8s-app=aws-node
-
Conferma che Pods tutto riavviato.
kubectl get pods -n kube-system -l k8s-app=aws-node
-
Descrivi uno dei Pods e verifica che le variabili
AWS_WEB_IDENTITY_TOKEN_FILE
e diAWS_ROLE_ARN
ambiente esistano. Replace (Sostituisci)cpjw7
con il nome di uno dei tuoi Pods restituito nell'output del passaggio precedente.kubectl describe pod -n kube-system aws-node-cpjw7 | grep 'AWS_ROLE_ARN:\|AWS_WEB_IDENTITY_TOKEN_FILE:'
Di seguito viene riportato un output di esempio:
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
Vengono restituiti due set di risultati duplicati perché Pod contiene due contenitori. I due container hanno gli stessi valori.
Se le ricette di Pod utilizza l'endpoint AWS regionale, quindi nell'output precedente viene restituita anche la riga seguente.
AWS_STS_REGIONAL_ENDPOINTS=regional
Fase 3: Rimuovere la CNI policy dal ruolo del nodo IAM
Se al tuo IAMruolo Amazon EKS node è attualmente associata la IPv6policy AmazonEKS_CNI_Policy IAM (IPv4) o una policy e hai creato un IAM ruolo separato, hai invece allegato la policy ad esso e l'hai assegnata a aws-node
Kubernetes account di servizio, quindi ti consigliamo di rimuovere la policy dal tuo ruolo di nodo con il AWS CLI comando che corrisponde alla famiglia IP del tuo cluster. Replace (Sostituisci) AmazonEKSNodeRole
con il nome del ruolo del nodo.
-
IPv4
aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy
-
IPv6
Replace (Sostituisci)
111122223333
con l'ID del tuo account eAmazonEKS_CNI_IPv6_Policy
con il nome della tuaIPv6
polizza.aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy
Crea IAM policy per i cluster che utilizzano la famiglia IPv6
Se hai creato un cluster che utilizza la IPv6
famiglia e il cluster ha una versione 1.10.1
o successiva della Amazon VPC CNI plugin for Kubernetes componente aggiuntivo configurato, è necessario creare una IAM politica da assegnare a un IAM ruolo. Se disponi di un cluster esistente che non hai configurato con la IPv6
famiglia al momento della creazione, per IPv6
utilizzarlo devi creare un nuovo cluster. Per ulteriori informazioni sull'uso di IPv6
con il cluster, consulta Scopri IPv6 gli indirizzi verso i cluster, podse servizi.
-
Copia il testo seguente e salvalo in un file denominato
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/*" ] } ] }
-
Crea la IAM policy.
aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json