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

本地K3S集群通过Workload Identity Federation拉取GAR镜像失败求助

排查本地K3S集群对接GAR拉取镜像失败的缺失配置

1. 检查容器运行时的镜像拉取配置

K3S默认使用containerd,需确认其针对GAR仓库的认证配置是否正确:

  • 查看/var/lib/rancher/k3s/agent/etc/containerd/config.toml,确保us-west-docker.pkg.dev仓库已配置正确的auth插件,关联Workload Identity的令牌获取逻辑
  • 重启相关服务使配置生效:systemctl restart k3s-agent containerd

2. 验证Workload Identity令牌的受众匹配

  • 检查获取到的令牌的aud字段是否为https://us-west-docker.pkg.dev,GAR要求令牌受众必须与仓库域名完全匹配
  • 可通过gcloud auth print-identity-token --audiences=https://us-west-docker.pkg.dev生成测试令牌,对比本地集群获取的令牌内容,确认受众一致

3. 确认Workload Identity绑定关系有效性

  • 检查K8S服务账号与GCP服务账号的绑定规则:确保命名空间、服务账号名称完全匹配,绑定关系已正确创建
  • 执行gcloud iam workload-identity-pools providers describe <provider-name> --location=global --workload-identity-pool=<pool-name>,验证绑定的K8S资源信息无误

4. 排查集群网络访问权限

  • 在K3S节点上执行curl -v https://us-west-docker.pkg.dev/v2/和curl -v https://oauth2.googleapis.com,确认节点可正常访问GAR和GCP令牌服务
  • 若集群有防火墙或代理,需确保允许上述域名的HTTPS流量通过,且代理配置已同步应用到containerd和k3s进程

5. 核对Pod的服务账号配置

  • 确认Pod的serviceAccountName已设置为关联Workload Identity的K8S服务账号,且该服务账号的注解(如iam.gke.io/gcp-service-account)正确指向拥有GAR Reader权限的GCP服务账号
  • 检查Pod是否配置了无关的imagePullSecrets,该配置会覆盖Workload Identity的认证流程,需移除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:54:54