Terraform创建的EKS拉取镜像失败及跨区域拉取问题排查
问题分析与解决
拉取镜像失败的核心原因
你在Terraform中设置的镜像仓库参数路径错误,导致Helm chart没有使用你指定的Public ECR镜像仓库,而是默认调用了us-west-2区域的私有ECR仓库(602401143452.dkr.ecr.us-west-2.amazonaws.com)。私有ECR拉取必须依赖AWS认证凭证,但你的EKS环境未配置对应权限或访问路径,因此触发"no basic auth credentials"错误。
疑问解答
1. 为何会缺少基础认证凭证?
默认的602401143452.dkr.ecr.us-west-2.amazonaws.com是AWS私有ECR仓库,拉取私有ECR镜像必须满足两个前提:
- EKS节点的IAM角色需具备
ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:BatchCheckLayerAvailability权限; - 节点能访问ECR服务(私有子网环境需配置ECR的VPC端点,或通过NAT网关访问公网)。
而你原本想使用的public.ecr.aws/eks/aws-load-balancer-controller是公共ECR仓库,无需认证即可拉取,但因为参数设置错误,触发了私有ECR的拉取逻辑,自然出现凭证缺失报错。
2. 如何配置从非us-west-2区域拉取镜像?
有两种可行方案:
方案一:使用公共ECR仓库(推荐,无需区域配置)
修正Terraform中set参数的路径,将image.repository改为controller.image.repository,确保覆盖chart的默认镜像地址:
set { name = "controller.image.repository" value = "public.ecr.aws/eks/aws-load-balancer-controller" }
公共ECR是全球分发的,无需指定区域,私有子网环境只要能访问公网(或配置Public ECR的VPC端点)即可拉取。
方案二:使用对应区域的私有ECR仓库
如果你想使用ap-southeast-1区域的私有ECR,需要:
- 修改镜像仓库地址为对应区域的私有ECR路径:
set { name = "controller.image.repository" value = "602401143452.dkr.ecr.ap-southeast-1.amazonaws.com/amazon/aws-load-balancer-controller" } - 确保EKS节点的IAM角色附加
AmazonEC2ContainerRegistryReadOnly策略; - 私有子网环境需配置ECR的VPC端点(包括ecr.dkr和ecr.api两个端点),或通过NAT网关访问公网。
修正后的Terraform代码片段
# Install AWS LoadBalancer Controller resource "helm_release" "aws-lb-controller" { name = "aws-load-balancer-controller" chart = "eks/aws-load-balancer-controller" repository = "https://aws.github.io/eks-charts" values = [] set { name = "region" value = "ap-southeast-1" } # 修正镜像仓库参数路径 set { name = "controller.image.repository" value = "public.ecr.aws/eks/aws-load-balancer-controller" } set { name = "controller.image.tag" value = "v2.4.5" } set { name = "namespace" value = "kube-system" } set { name = "serviceAccount.create" value = "false" } set { name = "serviceAccount.name" value = "aws-load-balancer-controller" } set { name = "ingress-class" value = "alb" } set { name = "controller.admissionWebhooks.enabled" value = "false" } }
内容的提问来源于stack exchange,提问作者MA_DevOps_2023
相关产品推荐
相关产品推荐

