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

Kubernetes Pod无法从Artifact Registry拉取镜像求助

Artifact Registry镜像拉取403 Forbidden问题排查方案

1. 确认服务账号权限绑定有效性

  • 获取默认服务账号邮箱:
    gcloud iam service-accounts list --filter="displayName:Default Compute Service Account"
    
  • 检查该账号是否已正确绑定roles/artifactregistry.reader角色:
    gcloud projects get-iam-policy [你的项目ID] --filter="bindings.members:serviceAccount:[服务账号邮箱]" --format="value(bindings.role)"
    
  • 注意:IAM权限绑定可能存在5-10分钟的生效延迟,绑定后需等待一段时间再测试。

2. 排查GKE工作负载身份配置

  • 检查集群是否启用工作负载身份:
    gcloud container clusters describe [集群名称] --zone [集群所在区域] | grep workloadIdentityConfig
    
    • 若未启用工作负载身份:Pod实际使用的是节点服务账号,需给节点服务账号配置roles/artifactregistry.reader权限。
    • 若已启用工作负载身份:确认K8s默认服务账号与GCP服务账号的绑定关系是否存在:
      gcloud iam service-accounts get-iam-policy [GCP服务账号邮箱] --format="value(bindings.members)"
      
      需确保输出包含serviceAccount:[你的项目ID].svc.id.goog[kube-system/default]。

3. 验证镜像地址准确性

  • 确认Deployment/YAML中的镜像路径格式正确,应为:
    [区域]-docker.pkg.dev/[项目ID]/[仓库名称]/[镜像名称]:[标签]
    
  • 通过以下命令确认镜像确实存在于Artifact Registry:
    gcloud artifacts docker images list [区域]-docker.pkg.dev/[项目ID]/[仓库名称]
    

4. 检查网络访问配置

  • 若为私有GKE集群:确保节点所在VPC已配置Artifact Registry私有端点,或通过云NAT允许节点访问公网端点。
  • 检查Artifact Registry仓库的访问控制设置,确认集群所在VPC被允许访问。

5. 节点上手动测试拉取

  • 登录到集群节点,执行以下命令测试镜像拉取:
    docker pull [完整镜像路径]
    
    • 若拉取失败:问题出在节点权限或网络配置;
    • 若拉取成功:需重新检查Pod的服务账号配置或工作负载身份绑定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:36:13