You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes YAML中配置AWS ECR身份认证以拉取私有镜像

前置检查

首先确认pod.yaml中填写的镜像地址和ECR实际仓库地址一致,报错日志中拉取的镜像名比你配置的多了mcflow-前缀,先排查是否是镜像地址填写错误导致的问题,确认地址无误后再按以下方案配置权限。

解决方案

报错的核心原因是你的Kubernetes集群EC2工作节点绑定的IAM角色 nodes.dev.vet-dev.digitalecp.mcd.com 没有访问目标ECR仓库的拉取权限,两种可选方案如下:

方案一:为EC2工作节点IAM角色配置ECR访问权限(推荐)

该方案无需额外配置密钥,集群所有节点都可复用权限,适合长期使用:

  • 登录AWS IAM控制台,找到名为 nodes.dev.vet-dev.digitalecp.mcd.com 的IAM角色
  • 为该角色附加权限策略,你可以直接使用AWS托管的AmazonEC2ContainerRegistryReadOnly策略,也可以自定义最小权限策略,示例如下:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "*"
        }
    ]
}
  • 权限配置完成后等待2~3分钟生效,删除异常Pod重新创建即可正常拉取镜像。

方案二:创建ImagePullSecret密钥绑定到Pod/ServiceAccount

如果不方便修改节点IAM角色,可以使用镜像拉取密钥的方式实现单次认证:

  1. 确保本地AWS CLI已经配置了有权限访问目标ECR的凭证,执行以下命令生成ECR认证信息:
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 442285873998.dkr.ecr.us-east-1.amazonaws.com
  1. 基于docker认证配置创建Kubernetes Secret:
kubectl create secret docker-registry ecr-pull-secret \
  --docker-server=442285873998.dkr.ecr.us-east-1.amazonaws.com \
  --docker-username=AWS \
  --docker-password=$(aws ecr get-login-password --region us-east-1)
  1. 修改你的pod.yaml,添加imagePullSecrets字段引用刚才创建的密钥:
apiVersion: v1
kind: Pod
metadata:
  name: dotnet-console-producer-poc.pod
  labels:
    app: helloworld
spec:
  imagePullSecrets:
  - name: ecr-pull-secret
  containers:
  - name: dotnet-console-producer-pod
    image: 442285873998.dkr.ecr.us-east-1.amazonaws.com/dotnet-console-producer-benchmark-docker:latest
    ports:
    - containerPort: 8001

注意:ECR的认证凭证有效期只有12小时,长期使用建议部署ECR Credential Helper或者定时任务自动更新Secret,避免凭证过期导致拉取失败。

内容的提问来源于stack exchange,提问作者furzaBruta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:45:03