Cloud Build 可让您通过在高 CPU 虚拟机 (VM) 类型上运行 build 来提高 build 速度,而不是使用默认的标准 VM。虽然高 vCPU 机器可以更快地运行 build,但由于 Cloud Build 仅在需要时启动非标准机器,因此可能会增加默认池的启动时间。
如果您需要的 vCPU 选项比默认池提供的更多,则可以在专用池上运行 build,专用池提供更多的高 CPU 机器类型。
如需详细了解所有可用的机器类型,请参阅“价格”页面。
准备工作
如需使用本指南中的命令行示例,请安装并配置 Google Cloud CLI。
- 如果您之前已经安装了 gcloud CLI,请运行
gcloud components update以确保您拥有最新版本。
增加默认池的 vCPU
您可以通过以下方式增加默认池中运行 build 的 vCPU:直接将值传递给 gcloud builds submit 命令,或在 build 配置文件中指定值。
直接将值传递给 gcloud builds submit 命令:
如需直接在 gcloud builds submit 命令中指定自定义虚拟机大小,请向该命令添加 --machine-type 实参:
gcloud builds submit --config=cloudbuild.yaml \
--machine-type=E2_HIGHCPU_8
在 build 配置文件中指定值:
YAML
打开您的 build 配置文件。
将
machineType字段更新为与默认池支持的机器类型对应的枚举值。以下示例展示了如何向 build 配置文件添加machineType选项:steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/my-project/image1', '.'] options: machineType: 'E2_HIGHCPU_8'使用 gcloud CLI 或构建触发器启动构建。
JSON
打开您的 build 配置文件。
将
machineType字段更新为与默认池支持的机器类型对应的枚举值。以下示例展示了如何向 build 配置文件添加machineType选项:{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": ["build", "-t", "gcr.io/my-project/image1", "."] }, "options": { "machineType": "E2_HIGHCPU_8" } }使用 gcloud CLI 或构建触发器启动构建。
如需确保使用特定机器类型来构建 Cloud Run 服务的容器,请执行以下操作:
使用专用 Cloud Build build 构建并推送容器映像,并在
cloudbuild.yaml中配置所需的machineType。通过引用 Artifact Registry 中的映像网址,将服务部署到 Cloud Run:
gcloud run deploy SERVICE_NAME --image IMAGE_URL
增加专用池的 vCPU 数量
控制台
在 Google Cloud 控制台中,打开工作器池页面:
选择您在其中创建了专用池的项目。
点击专用池名称。
在修改专用池侧边栏中,使用机器类型下拉菜单选择更大的机器类型。
点击保存。
gcloud
您可以通过以下任一方式来增加在专用池中运行 build 的 vCPU:直接将值传递给 gcloud builds worker-pools update 命令,或在专用池配置文件中指定值。
在私有池配置文件中指定值:
打开您的专用池配置文件。
将
machineType字段的值更新为受支持的机器类型之一。运行以下命令,其中
PRIVATEPOOL_ID是专用池的唯一标识符,REGION是专用池所在的区域,PRIVATEPOOL_CONFIG_FILE是专用池配置文件的名称:gcloud builds worker-pools update PRIVATEPOOL_ID \ --region=REGION \ --config-from-file=PRIVATEPOOL_CONFIG_FILE
直接将值传递给 gcloud builds worker-pools update 命令:
gcloud builds worker-pools update PRIVATEPOOL_ID \
--region=REGION \
--worker-machine-type=PRIVATEPOOL_MACHINE_TYPE
将上述命令中的占位值替换为以下值:
PRIVATEPOOL_ID:现有专用池的 ID。无法更新此值;必须指定现有专用池 ID。REGION:您创建专用池的区域。PRIVATEPOOL_DISK_SIZE:更新后的磁盘大小。PRIVATEPOOL_MACHINE_TYPE是更新后的机器类型。只要您使用相应的专用池运行 build,Cloud Build 就会使用更新后的机器类型。
后续步骤
- 了解更多可加快构建速度的最佳实践。