Cloud Build导出自定义镜像至Cloud Storage报错求助
解答:GCE镜像导出至GCS的报错与疑问处理
一、报错分析与修复
1. 控制台方式:网络资源未找到错误
报错原因是导出镜像的Cloud Build任务默认尝试调用default网络,但你已删除该网络,且未在构建配置中指定自定义VPC。修复步骤:
- 在控制台导出镜像的高级选项里,明确选择你创建的自定义VPC及对应子网(需确保子网位于构建运行的区域内)。
- 给Cloud Build服务账号(格式为
[你的项目编号]@cloudbuild.gserviceaccount.com)授予Compute Network User角色,使其有权访问该自定义VPC。
2. CLI方式:区域配额限制错误
这个报错指向Cloud Build服务在指定区域的配额不足,和源镜像区域、GCS桶位置无直接关联,具体是指你执行gcloud compute images export时通过--region指定的(或默认的)Cloud Build运行区域的配额不够。
二、你的疑问解答
1. 配额限制下的替代导出方法
可以通过手动创建临时VM的方式导出镜像:
- 创建临时Compute Engine实例,选择与目标镜像同区域的机器类型。
- 将需要导出的镜像创建为磁盘,附加到临时VM上(作为非启动磁盘)。
- 登录VM,挂载该磁盘,将磁盘内容打包为
tar或raw格式文件。 - 使用
gsutil cp命令将打包文件上传至目标GCS存储桶。 - 完成操作后删除临时VM和附加的磁盘。
2. 需提升的配额项
在Google Cloud控制台的配额页面,搜索并提升以下Cloud Build相关配额:
- Concurrent builds(区域级):控制同一区域内可同时运行的构建数量。
- Build minutes per day(区域级):控制每日在该区域内可使用的构建时长。
若为区域资源限制,也需确认该区域的Cloud Build API已启用,且该区域支持Cloud Build服务。
3. 区域限制的指向
报错中的区域限制指的是Cloud Build运行构建任务的区域,也就是你执行导出命令时指定的--region参数对应的区域,与VM所在VPC、GCS桶位置无关(但为了性能,建议该区域与源镜像或GCS桶区域接近)。
内容的提问来源于stack exchange,提问作者CuppaCoffee
相关产品推荐
相关产品推荐

