Bantu meningkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan plugin Amazon VPC CNI untuk menggunakan IRSA
Plugin Amazon VPC CNI untuk Kubernetes
catatan
Plugin Amazon VPC CNI juga mendukung Amazon EKS Pod Identities. Untuk informasi selengkapnya, lihat Menetapkan peran IAM ke akun layanan Kubernetes.
Plugin:
-
Memerlukan izin AWS Identitas dan Manajemen Akses (IAM). Jika cluster Anda menggunakan
IPv4keluarga, izin ditentukan dalam kebijakan terAmazonEKS_CNI_PolicyAWS kelola. Jika cluster Anda menggunakanIPv6keluarga, maka izin harus ditambahkan ke kebijakan IAM yang Anda buat; untuk instruksi, lihatMembuat kebijakan IAM untuk cluster yang menggunakan keluarga IPv6. Anda dapat melampirkan kebijakan ke peran IAM simpul Amazon EKS, atau ke peran IAM terpisah. Untuk petunjuk untuk melampirkan kebijakan ke peran IAM node Amazon EKS, lihatIAM role simpul Amazon EKS. Kami menyarankan Anda menetapkannya ke peran terpisah, seperti yang dijelaskan dalam topik ini. -
Membuat dan dikonfigurasi untuk menggunakan akun layanan Kubernetes yang diberi nama
aws-nodesaat digunakan. Akun layanan terikat keclusterroleKubernetes bernamaaws-node, yang ditugaskan izin Kubernetes yang diperlukan.
catatan
Pod untuk plugin Amazon VPC CNI untuk Kubernetes memiliki akses ke izin yang ditetapkan ke peran IAM node Amazon EKS, kecuali Anda memblokir akses ke IMDS. Untuk informasi selengkapnya, lihat Mem batasi akses ke profil instance yang ditetapkan ke node pekerja
-
Memerlukan cluster Amazon EKS yang sudah ada. Untuk menyebarkannya, lihatMemulai dengan Amazon EKS.
-
Memerlukan penyedia AWS Identitas dan Manajemen Akses (IAM) OpenID Connect (OIDC) yang ada untuk cluster Anda. Untuk menentukan apakah Anda sudah memiliki satu, atau harus membuat satu, lihat Buat penyedia IAM OIDC untuk klaster Anda.
Langkah 1: Buat plugin Amazon VPC CNI untuk peran IAM Kubernetes
-
Tentukan keluarga IP cluster Anda.
aws eks describe-cluster --name my-cluster | grep ipFamilyContoh output adalah sebagai berikut.
"ipFamily": "ipv4"Output dapat kembali sebagai
ipv6gantinya. -
Buat peran IAM. Anda dapat menggunakan
eksctlataukubectldan AWS CLI untuk membuat peran IAM Anda.- eksctl
-
-
Buat peran IAM dan lampirkan kebijakan IAM ke peran dengan perintah yang cocok dengan keluarga IP cluster Anda. Perintah membuat dan menyebarkan tum AWS CloudFormation pukan yang membuat peran IAM, melampirkan kebijakan yang Anda tentukan padanya, dan membuat anotasi akun layanan
aws-nodeKubernetes yang ada dengan ARN dari peran IAM yang dibuat.-
IPv4Ganti
my-clusterdengan nilai milik Anda sendiri.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 -
IPv6Ganti
my-clusterdengan nilai milik Anda sendiri. Ganti111122223333dengan ID akun Anda dan gantiAmazonEKS_CNI_IPv6_Policydengan namaIPv6polis Anda. Jika Anda tidak memilikiIPv6kebijakan, lihat Membuat kebijakan IAM untuk cluster yang menggunakan keluarga IPv6 cara membuatnya. Untuk digunakanIPv6dengan cluster Anda, itu harus memenuhi beberapa persyaratan. Untuk informasi selengkapnya, lihat Pelajari tentang alamat IPv6 ke cluster, Pod, dan layanan.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 dan CLI AWS
-
-
Lihat URL penyedia OIDC cluster Anda.
aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output textContoh output adalah sebagai berikut.
https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLEJika tidak ada output yang dikembalikan, maka Anda harus membuat penyedia IAM OIDC untuk cluster Anda.
-
Salin isi berikut ke file bernama
vpc-cni-trust-policy.json. Ganti111122223333dengan ID akun Anda danEXAMPLED539D4633E53DE1B71EXAMPLEdengan output yang dikembalikan pada langkah sebelumnya. Gantiregion-codedengan AWS Wilayah tempat cluster Anda berada.{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com", "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:aws-node" } } } ] } -
Buat peran. Anda dapat mengganti
AmazonEKSVPCCNIRoledengan nama apa pun yang Anda pilih.aws iam create-role \ --role-name AmazonEKSVPCCNIRole \ --assume-role-policy-document file://"vpc-cni-trust-policy.json" -
Lampirkan kebijakan IAM yang diperlukan ke peran. Jalankan perintah yang cocok dengan keluarga IP cluster Anda.
-
IPv4aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSVPCCNIRole -
IPv6Ganti
111122223333dengan ID akun Anda danAmazonEKS_CNI_IPv6_Policydengan namaIPv6polis Anda. Jika Anda tidak memilikiIPv6kebijakan, lihat Membuat kebijakan IAM untuk cluster yang menggunakan keluarga IPv6 cara membuatnya. Untuk digunakanIPv6dengan cluster Anda, itu harus memenuhi beberapa persyaratan. Untuk informasi selengkapnya, lihat Pelajari tentang alamat IPv6 ke cluster, Pod, dan layanan.aws iam attach-role-policy \ --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSVPCCNIRole
-
-
Jalankan perintah berikut untuk membuat anot
aws-nodeasi akun layanan dengan ARN dari peran IAM yang Anda buat sebelumnya. Ganti nilai contoh dengan nilai Anda sendiri.kubectl annotate serviceaccount \ -n kube-system aws-node \ eks.amazonaws.com/role-arn=arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole
-
-
(Opsional) Konfigurasikan jenis titik akhir Layanan Token AWS Keamanan yang digunakan oleh akun layanan Kubernetes Anda. Untuk informasi selengkapnya, lihat Konfigurasikan AWS Titik akhir Layanan Token Keamanan untuk akun layanan.
Langkah 2: Plugin Re-deploy Amazon VPC CNI untuk Kubernetes Pod
-
Hapus dan buat kembali Pod yang ada yang terkait dengan akun layanan untuk menerapkan variabel lingkungan kredensi. Anotasi tidak diterapkan pada Pod yang saat ini berjalan tanpa anotasi. Perintah berikut menghapus Pod yang ada dan
aws-nodeDaemonSet menyebarkannya dengan anotasi akun layanan.kubectl delete Pods -n kube-system -l k8s-app=aws-node -
Konfirmasikan bahwa semua Pod dihidupkan ulang.
kubectl get pods -n kube-system -l k8s-app=aws-node -
Jelaskan salah satu Pod dan verifikasi bahwa variabel
AWS_WEB_IDENTITY_TOKEN_FILEdanAWS_ROLE_ARNlingkungan ada. Ganticpjw7dengan nama salah satu Pod Anda yang dikembalikan dalam output langkah sebelumnya.kubectl describe pod -n kube-system aws-node-cpjw7 | grep 'AWS_ROLE_ARN:\|AWS_WEB_IDENTITY_TOKEN_FILE:'Contoh output adalah sebagai berikut.
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/tokenDua set hasil duplikat dikembalikan karena Pod berisi dua kontainer. Kedua wadah memiliki nilai yang sama.
Jika Pod Anda menggunakan titik akhir AWS Regional, maka baris berikut juga dikembalikan pada output sebelumnya.
AWS_STS_REGIONAL_ENDPOINTS=regional
Langkah 3: Hapus kebijakan CNI dari peran IAM node
Jika peran IAM node Amazon EKS Anda saat ini memiliki kebijakan AmazonEKS_CNI_Policy IAM (IPv4) atau kebijakan IPv6 yang dilamp irkan padanya, dan Anda telah membuat peran IAM terpisah, melampirkan kebijakan tersebut, dan menetapkannya ke akun layanan aws-node Kubernetes, sebaiknya hapus kebijakan dari peran node dengan perintah AWS CLI yang cocok dengan keluarga IP cluster Anda. Ganti AmazonEKSNodeRole dengan nama peran node Anda.
-
IPv4aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy -
IPv6Ganti
111122223333dengan ID akun Anda danAmazonEKS_CNI_IPv6_Policydengan namaIPv6polis Anda.aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy
Membuat kebijakan IAM untuk cluster yang menggunakan keluarga IPv6
Jika Anda membuat cluster yang menggunakan IPv6 keluarga dan cluster memiliki plugin Amazon VPC CNI untuk add-on Kubernetes versi 1.10.1 atau yang lebih baru, maka Anda perlu membuat kebijakan IAM yang dapat Anda tetapkan ke peran IAM. Jika Anda memiliki cluster yang sudah ada yang tidak Anda konfigurasikan dengan IPv6 keluarga saat Anda membuatnya, maka untuk menggunakannyaIPv6, Anda harus membuat cluster baru. Untuk informasi selengkapnya tentang penggunaan IPv6 dengan cluster Anda, lihatPelajari tentang alamat IPv6 ke cluster, Pod, dan layanan.
-
Salin teks berikut dan simpan ke file bernama
vpc-cni-ipv6-policy.json.{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes", "ec2:DescribeSubnets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] } -
Buat kebijakan IAM.
aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json