设置 Amazon EKS 容器组身份代理 - Amazon EKS

帮助改进此页面

想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

设置 Amazon EKS 容器组身份代理

Amazon EKS 容器组身份关联提供管理应用程序凭证的功能,类似于 Amazon EC2 实例配置文件为 Amazon EC2 实例提供凭证的方式。

Amazon EKS 容器组身份通过额外的 EKS Auth API,以及在每个节点上运行的代理容器组为您的工作负载提供凭证。

注意事项

  • IPv6

    默认情况下,EKS 容器组身份代理会侦听 IPv4IPv6 地址,以便为容器组请求凭证。对于 IPv4,代理会使用环回(本地主机)IP 地址 169.254.170.23,对于 IPv6,则会使用本地主机 IP 地址 [fd00:ec2::23]

    如果禁用 IPv6 地址或以其他方式阻止本地主机 IPv6 IP 地址,代理将无法启动。要在无法使用 IPv6 的节点上启动代理,请按照 在 EKS 容器组身份代理中禁用 IPv6 中的步骤禁用 IPv6 配置。

创建 Amazon EKS 容器组身份代理

代理先决条件

  • 现有 Amazon EKS 集群。要部署一个角色,请参阅 开始使用 Amazon EKS。集群版本和平台版本必须与 EKS 容器组身份集群版本 中列出的版本相同或更高。

  • 节点角色有权让代理在 EKS Auth API 中执行 AssumeRoleForPodIdentity 操作。您可以使用 AWS托管策略:AmazonEKSWorkerNodePolicy 或添加自定义策略,自定义策略与以下策略类似:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks-auth:AssumeRoleForPodIdentity" ], "Resource": "*" } ] }

    可通过标签来限制此操作,以限制使用代理的容器组可以分派哪些角色。

  • 节点可以访问 Amazon ECR 并从中下载映像。插件的容器映像位于 查看 Amazon EKS 附加组件的 Amazon 容器映像注册表 中列出的注册表中。

    请注意,您可以在 AWS Management Console 中的可选配置设置,以及 AWS CLI 中的 --configuration-values 更改映像位置并为 EKS 插件提供 imagePullSecrets

  • 节点可以访问 Amazon EKS Auth API。对于私有集群,AWS PrivateLink 中的 eks-auth 端点是必需的。

AWS Management Console
  1. 从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters

  2. 在左侧导航窗格中,选择集群,然后为您要配置 EKS 容器组身份代理插件的集群选择集群名称。

  3. 选择附加组件选项卡。

  4. 选择获取更多附加组件

  5. 选择 EKS 容器组身份代理插件框右上角的框,然后选择下一步

  6. 配置选定插件设置页面上,从版本下拉列表中选择任意版本。

  7. (可选)展开可选配置设置以输入其他配置。例如,您可以提供备用容器映像位置和 ImagePullSecrets。带有已接受键的 JSON Schema 显示在插件配置架构中。

    配置值中输入配置键和值。

  8. 选择下一步

  9. 确认 EKS 容器组身份代理容器组正在您的集群上运行。

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    示例输出如下。

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    现在,您可以在集群中使用 EKS 容器组身份关联。有关更多信息,请参阅 为 Kubernetes 服务账户分配 IAM 角色

AWS CLI
  1. 运行以下 AWS CLI 命令:将 my-cluster 替换为您的集群名称。

    aws eks create-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1
    注意

    EKS 容器组身份代理不将 service-account-role-arn 用于服务账户的 IAM 角色。您必须为 EKS 容器组身份代理提供节点角色的权限。

  2. 确认 EKS 容器组身份代理容器组正在您的集群上运行。

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    示例输出如下。

    eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
    eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h

    现在,您可以在集群中使用 EKS 容器组身份关联。有关更多信息,请参阅 为 Kubernetes 服务账户分配 IAM 角色