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

Google Compute Engine虚拟机容器无法启动问题排查求助

GCP抢占式虚拟机容器启动失败权限问题解决方案

从错误日志可直接定位核心问题:虚拟机无权限拉取GCR容器镜像,你当前给实例配置的访问scope仅包含BigQuery和Datastore权限,缺少镜像拉取所需的权限。

解决方案

方案1:修改实例启动参数补充访问Scope(最便捷)

GCR底层依赖Cloud Storage存储镜像,只需要给实例追加存储只读权限即可正常拉取镜像,修改部署脚本中gcloud命令的--scopes参数:

steps:
- name: gcr.io/cloud-builders/docker
  args: ['build', '-t', 'gcr.io/local-xxxxxxxxxxxxxx/apptraining', '.']

- name: 'gcr.io/cloud-builders/docker'
  args: ["push", "gcr.io/local-xxxxxxxxxxxxxx/apptraining"]

- name: 'gcr.io/cloud-builders/gcloud'
  args: ['compute', 'instances', 'create-with-container', 'instanceapptraining', '--machine-type=n1-standard-1', '--scopes=https://www.googleapis.com/auth/bigquery,https://www.googleapis.com/auth/datastore,https://www.googleapis.com/auth/devstorage.read_only','--zone=us-central1-a', '--preemptible', '--container-image=gcr.io/local-xxxxxxxxxxxxxx/apptraining:latest']

如果是测试环境,也可以直接用https://www.googleapis.com/auth/cloud-platform替代原有全部scope,该权限包含所有GCP服务的访问权限,不用单独配置各服务权限。

方案2:给服务账号单独授权(权限管控更严格)

如果不希望给实例开全局访问scope,可以单独给虚拟机使用的Compute Engine默认服务账号授权:

  • 找到存储GCR镜像的Cloud Storage桶,默认格式为artifacts.<你的项目ID>.appspot.com
  • 在IAM页面给默认Compute Engine服务账号(格式为<项目编号>-compute@developer.gserviceaccount.com)授予该桶的存储对象查看者角色即可

验证方式

修改配置后重新创建实例,SSH连接后执行sudo journalctl -u konlet-startup查看日志,无镜像拉取权限报错即为修复完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:09:02