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

GKE Workload部署失败:容器镜像构建错误排查求助

排查GKE部署时「Building the container image failed」错误的实用步骤

看起来你已经完成了镜像构建推送,却在GKE部署环节卡壳了——这个「Building the container image failed」提示有点误导人,实际大概率是镜像拉取失败或者配置问题,下面是一步步的排查方向:

1. 先核对镜像路径的正确性

GCP自动填充的gcr.io/some-gcp-project/github.com/githubuser/cso:$SHORT_SHA可能有问题:

  • 你推送到GitHub Packages的镜像实际路径应该是ghcr.io/githubuser/cso:$SHORT_SHA(GitHub Packages的镜像域名是ghcr.io而非gcr.io)。GCP的自动填充可能是尝试同步镜像到GCR但没成功,建议手动把Deployment YAML里的image字段替换成GitHub Packages的真实镜像地址再试。

2. 确认GitHub Packages的访问权限

GitHub Packages默认是私有仓库,GKE节点需要合法的凭证才能拉取:

  • 生成一个GitHub Personal Access Token(PAT),勾选read:packages权限;
  • 在GCP控制台给GKE集群配置镜像拉取密钥:把PAT作为密码,你的GitHub用户名作为用户名,创建一个Secret,然后在Deployment的spec.template.spec.imagePullSecrets里引用这个Secret(比如添加imagePullSecrets: - name: github-packages-secret)。

3. 验证镜像和Tag确实存在

登录GitHub进入你的Packages页面,找到cso镜像,确认$SHORT_SHA对应的Tag已经成功推送上去。有时候推送过程中可能因为网络问题失败,或者Tag拼写错误,导致镜像实际不存在。

4. 查看GKE Pod的详细事件日志

部署失败后,进入GKE控制台的Workloads页面,找到这个cso Deployment,点击进入查看Pod的状态:

  • 如果看到ImagePullBackOff或ErrImagePull状态,点击Pod查看事件详情,里面会给出具体错误,比如「authentication required」(权限问题)、「manifest unknown」(镜像/Tag不存在),这些信息能直接定位问题。

5. 手动测试镜像拉取

用Cloud Shell或者本地机器(确保能访问GitHub),执行以下操作:

  1. 登录GitHub Packages:echo "你的PAT" | docker login ghcr.io -u 你的GitHub用户名 --password-stdin
  2. 尝试拉取镜像:docker pull ghcr.io/githubuser/cso:$SHORT_SHA
    如果拉取失败,说明问题出在GitHub Packages那边(比如镜像没推上去、PAT权限不够);如果能拉取,那问题大概率在GKE的配置(比如节点没权限访问GitHub、镜像拉取密钥没配置对)。

6. 检查GCP镜像同步配置(如果依赖自动同步)

如果你是想让GCP自动把GitHub Packages的镜像同步到GCR,需要确认同步任务是否成功:

  • 去GCP的Artifact Registry查看同步日志,或者检查Cloud Build的任务记录,看有没有同步失败的提示(比如权限不足、镜像不存在)。

另外,你的HPA配置是没问题的,它的状态依赖Deployment的正常运行,所以先解决Deployment的镜像问题即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 09:12:31