Cloud Build私有Worker Pool中的构建任务长期卡在Queued状态无法执行
故障原因
- 最高概率原因是IAM权限配置缺失:2021年8月下旬Google Cloud对私有Worker Pool的权限要求做了升级,必须给Cloud Build专属服务代理账号授予VPC的
Compute Network User权限,未调整权限的存量私有池会突然无法调度任务,和你故障发生的时间点完全吻合。 - 第二大概率原因是
cloudbuild.yaml配置错误:你提供的配置样例中options.pool.name字段的workerPools后缀写的是<project-id>,此处应填写Worker Pool的实际ID而非项目ID,配置错误会导致Cloud Build找不到可用的worker资源,任务长期处于排队状态。 - 其他可能原因:VPC对等连接状态异常、Worker Pool分配的IP段与现有VPC网段冲突、防火墙规则拦截了Worker池的出入站流量、私有池并发配额耗尽。
解决步骤
修正配置文件错误
核对cloudbuild.yaml中options.pool.name的完整路径,格式应为projects/<项目ID>/locations/<区域>/workerPools/<Worker Pool ID>,确保Worker Pool ID与你通过gcloud builds worker-pools list查询到的ID完全一致。补全IAM权限
执行以下命令给Cloud Build服务代理账号授权,将占位符替换为你项目的实际参数:
gcloud projects add-iam-policy-binding <你的项目ID> \ --member=serviceAccount:service-<你的项目数字ID>@gcp-sa-cloudbuild.iam.gserviceaccount.com \ --role=roles/compute.networkUser
项目数字ID可在GCP控制台「项目设置」页面查询。
排查VPC对等连接状态
打开GCP控制台进入「VPC网络 -> 对等连接」页面,找到对应区域私有池的对等连接(命名规则为cloudbuild-peer-<区域>-<池ID>),确认状态为ACTIVE:
如果状态为失败,删除现有Worker Pool后重建,重建时可手动指定未被现有VPC占用的/24网段作为Worker的IP范围,避免网段冲突。排查防火墙规则
确认VPC防火墙存在以下规则:
- 入站规则:放行来源为Worker Pool IP段的所有流量,目标为VPC内所有实例
- 出站规则:允许Worker池的所有出站流量(你配置了
PUBLIC_EGRESS,需要访问Secret Manager、Cloud SQL等公共服务)
- 验证修复结果
提交新的构建任务,确认任务不再卡在Queued状态正常执行。
内容的提问来源于stack exchange,提问作者Felipe Koji Waku
相关产品推荐
相关产品推荐

