将 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或 Amazon CloudFormation 模板创建集群和工作节点组,则预设情况下,这些 IAM 权限将应用于您的工作节点 IAM 角色。 -
对于在 Amazon 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。 -
您至少已在计算机上安装了 Amazon CLI 的版本
1.23.9或2.6.3。有关更多信息,请参阅安装或更新 Amazon 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 \ --regionus-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 configmaphelm-test-chart-configmap -
完成后,您可以从集群中删除图表版本。
helm uninstallecr-chart-demo