本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon ECR 映像与 Amazon EKS 结合使用
您可以将 Amazon ECR 映像与 Amazon EKS 结合使用,但需要满足以下先决条件。
-
对于在托管式节点或自行管理的节点上托管的 Amazon EKS 工作负载,必须提供 Amazon EKS Worker 节点 IAM 角色(
NodeInstanceRole
)。Amazon EKS Worker 节点 IAM 角色必须包含以下适用于 Amazon ECR 的 IAM policy 权限。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
注意
如果您使用 Amazon EKS 入门中的
eksctl
或 AWS CloudFormation 模板创建集群和工作节点组,则预设情况下,这些 IAM 权限将应用于您的工作节点 IAM 角色。 -
对于在 AWS Fargate 上托管的 Amazon EKS 工作负载,您必须使用 Fargate 容器组(Pod)执行角色,该角色为您的 Pod 提供了从私有 Amazon ECR 存储库中提取镜像的权限。有关更多信息,请参阅创建 Fargate Pod 执行角色。
-
从 Amazon ECR 中引用映像时,您必须为映像使用完整的
registry/repository:tag
命名。例如,aws_account_id
.dkr.ecr.region
.amazonaws.com/
。my-repository
:latest
使用 Amazon EKS 安装托管在 Amazon ECR 上的 Helm Chart
您在 Amazon ECR 中托管的 Helm Chart 可以安装在您的 Amazon EKS 集群上。以下步骤演示了这一点。
先决条件
开始使用之前,请确保您已完成以下步骤。
-
安装最新版本的 Helm 客户端。这些步骤是使用 Helm 版本
3.9.0
编写的。有关更多信息,请参阅安装 Helm。 -
您至少已在计算机上安装了 AWS CLI 的版本
1.23.9
或2.6.3
。有关更多信息,请参阅安装或更新 AWS CLI 的最新版本。 -
您已将 Helm Chart 推送到您的 Amazon ECR 存储库。有关更多信息,请参阅推送 Helm Chart。
-
您已配置
kubectl
以使用 Amazon EKS。有关更多信息,请参阅 Amazon EKS 用户指南中的为 Amazon EKS 创建kubeconfig
。如果集群的以下命令成功,说明您已正确配置。kubectl get svc
将 Amazon ECR 托管的 Helm Chart 安装到 Amazon EKS 集群
-
向托管 Helm Chart 的 Amazon ECR 注册表验证您的 Helm 客户端。必须针对每个注册表获得授权令牌,令牌有效期为 12 小时。有关更多信息,请参阅私有注册表身份验证。
aws ecr get-login-password \ --region
us-west-2
| helm registry login \ --username AWS \ --password-stdinaws_account_id
.dkr.ecr.region
.amazonaws.com -
安装图表。将
helm-test-chart
替换为您的存储库,并将0.1.0
替换为 Helm 图表的标签。helm install ecr-chart-demo oci://
/aws_account_id
.dkr.ecr.region
.amazonaws.comhelm-test-chart
--version0.1.0
输出应如下所示:
NAME: ecr-chart-demo LAST DEPLOYED: Tue May 31 17:38:56 2022 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None
-
验证图表安装。
helm list -n default
输出示例:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ecr-chart-demo default 1 2022-06-01 15:56:40.128669157 +0000 UTC deployed helm-test-chart-0.1.0 1.16.0
-
(可选)查看已安装的 Helm 图表
ConfigMap
。kubectl describe configmap
helm-test-chart-configmap
-
完成后,您可以从集群中删除图表版本。
helm uninstall
ecr-chart-demo