本页面介绍如何创建、更新、查看和删除 Cloud Build 专用池。如果您不熟悉专用池,请参阅专用池概览。
准备工作
创建 新 Google Cloud 项目 或选择现有项目。您将使用此项目创建专用池。
-
Enable the Cloud Build API.
如需使用本指南中的命令行示例,请安装并配置 Google Cloud CLI。
[可选] 要使构建能够从 Virtual Private Cloud 网络访问私有资源,您必须在您的 Virtual Private Cloud 网络与专用池所在的 Virtual Private Cloud 网络之间建立对等互连连接。如需了解相关说明,请参阅设置环境以创建专用池。
创建新的专用池
IAM 权限:您需要 Cloud Build WorkerPool Owner 角色才能执行此任务。有关授予此角色的说明,请参阅配置对 Cloud Build 资源的配置权限。
在每个区域,您可以为每个 Google Cloud 项目最多创建 10 个专用池。如需创建新的专用池,请按以下所述操作:
控制台
在 Google Cloud 控制台中打开工作器池页面:
选择要在其中创建专用池的项目。
在工作器池页面中,点击创建。
您将看到创建专用池侧边栏。
输入以下信息以创建专用池:
名称:输入专用池的名称。此值只能包含字母数字字符
/[a-z][0-9]/
或短划线-
。私有池的名称必须介于 1 到 63 个字符之间。区域:选择要在其中创建专用池的区域。
机器类型:选择您要用于哪个 Compute Engine 机器类型 您的专用池
可用磁盘大小:输入专用池的磁盘大小。指定一个大于或等于 100 且小于或等于 4000 的值。如果未提供值,则 Cloud Build 将使用大小为 100 的磁盘。
在网络类型下,选择以下选项之一:
默认网络:如果您的实例是 可通过公共互联网访问当系统显示默认网络 选项,则您的专用池将使用该服务 生产者网络。有关详情,请参阅设置要使用的环境 VPC 网络中的专用池。
专用网络:如果您的实例是托管的,请选择此选项 连接网络
项目:选择您的 Google Cloud 项目 ID。
网络:从下拉菜单中选择您的网络。如果您 尚未创建网络,请参阅创建和管理 VPC 网络,了解如何创建网络。
IP 范围:输入 Cloud Build 生产者网络可用于分配 与私有代码库保持连接的虚拟机。
您可以使用格式为
STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE
的无类别域间路由 (CIDR) 路由表示法指定范围。例如,192.0.2.0/24
的前缀长度为 24。IP 地址范围的前 24 位用作子网掩码 (192.0.2.0
),而可能的主机地址范围为192.0.2.0
到192.0.2.255
。前缀长度的值不得超过
/29
。如果拒绝 值,系统会自动分配默认值/24
。如果没有为前缀长度指定值,则系统会在对等互连的 VPC 网络中自动分配 IP 地址。如果未指定 IP 地址值 系统会自动为该 IP 地址分配一个范围 (位于对等互连的 VPC 网络中)。
分配外部 IP:默认选择此选项,以允许专用 可访问公共互联网取消选中此复选框即可限制访问权限 连接到专用网络
点击创建以创建专用池。
gcloud
您可以通过两种方式使用 gcloud
创建新的专用池:您可以将专用池配置文件传递给 gcloud
命令,也可以直接将配置选项传递给 gcloud
命令。
将专用池配置文件传递给 gcloud
命令:
创建 YAML 或 JSON 格式的专用池配置文件。
运行以下
gcloud
命令,其中PRIVATEPOOL_ID
是专用池的唯一标识符,PRIVATEPOOL_CONFIG_FILE
是您的专用池配置文件的名称,而REGION
是要在其中创建专用池的地区:gcloud builds worker-pools create PRIVATEPOOL_ID --config-from-file PRIVATEPOOL_CONFIG_FILE --region REGION
您应该会看到类似于如下内容的输出:
Created [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/private-pool]. NAME CREATE_TIME STATUS private-pool 2018-11-19T16:08:24+00:00 RUNNING
直接将配置选项传递到 gcloud
命令:
运行以下 gcloud
命令:
gcloud builds worker-pools create PRIVATEPOOL_ID \
--project=PRIVATEPOOL_PROJECT_ID \
--region=REGION \
--peered-network=PEERED_NETWORK \
--worker-machine-type=PRIVATEPOOL_MACHINE_TYPE \
--worker-disk-size=PRIVATEPOOL_DISK_SIZE_GB \
--no-public-egress
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_ID
:专用池的唯一标识符。此值应为 1-63 个字符,有效字符为[a-zA-Z0-9_-]+
。PRIVATEPOOL_PROJECT_ID
:Google Cloud 项目的 ID 要在其中创建专用池的位置REGION
:某个受支持的地区。PEERED_NETWORK
:与服务提供方网络建立对等互连的网络的网络资源网址。PEERED_NETWORK
必须采用projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME
格式,其中NETWORK_PROJECT_ID
是 VPC 网络所在的 Google Cloud 项目的 ID,NETWORK_NAME
是 VPC 网络的名称。如果您未指定值,则 Cloud Build 将使用服务提供商网络。PRIVATEPOOL_DISK_SIZE_GB
:挂接到专用池的磁盘的大小。请指定一个大于或等于以下值的值: 100 且小于或等于 4000。如果未提供值,则 Cloud Build 将使用大小为 100 的磁盘。如果您在gcloud builds submit
期间使用--disk-size
指定不同的磁盘大小,则会覆盖--worker-disk-size
。PRIVATEPOOL_MACHINE_TYPE
:工作器的机器类型。如果留空,Cloud Build 将使用默认值e2-standard-2
。如需查看支持的机器类型的列表,请参阅专用池配置文件架构。如果您在gcloud builds submit
期间使用--machine-type
指定其他机器类型,则会替换--worker-machine-type
。--no-public-egress
:如果设置此标志,则创建没有外部 IP 地址的专用池。如果您要在 VPC Service Controls 边界内创建专用池,请设置此标志。
API
创建专用池配置文件并命名为
workerpool.json
。使用 cURL 调用 Cloud Build API:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" \ https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/?workerPoolId=PRIVATEPOOL_ID -d @workerpool.json
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_PROJECT_ID
:Google Cloud 项目的 ID 要在其中创建专用池的位置PRIVATEPOOL_ID
:专用池的 ID。此值应为 1-63 个字符,有效字符为[a-zA-Z0-9_-]+
。REGION
:用于创建专用池的受支持的地区之一。
在 VPC Service Controls 边界内创建专用池
如果您要在 VPC Service Controls 边界内创建专用池,请参阅使用 VPC Service Controls。
更新专用池
IAM 权限:您需要 Cloud Build WorkerPool Editor 角色才能执行此任务。有关授予此角色的说明,请参阅配置对 Cloud Build 资源的访问权限。
您可以更新现有专用池的磁盘大小和机器类型。要更新专用池,请执行以下操作:
控制台
在 Google Cloud 控制台中打开工作器池页面:
选择您在其中创建了专用池的项目。
点击专用池名称。
在修改专用池侧边栏中,更新机器类型和/或磁盘大小。
点击保存。
gcloud
通过更新专用池配置文件,您可以:
在专用池配置文件中更新您希望更改的字段。
运行以下命令,其中
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-disk-size=PRIVATEPOOL_DISK_SIZE \
--worker-machine-type=PRIVATEPOOL_MACHINE_TYPE
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_ID
:现有专用池的 ID。无法更新此值;必须指定现有专用池 ID。REGION
:您在其中创建了专用池的区域。PRIVATEPOOL_DISK_SIZE
:更新后的磁盘大小。PRIVATEPOOL_MACHINE_TYPE
是更新后的机器类型。
API
在专用池配置文件中,更新磁盘大小和/或机器类型。
使用 cURL 调用 Cloud Build API,并将相关变量替换为适当的值:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID \ -d @workerpool.json
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_ID
:专用池的 ID。PRIVATEPOOL_PROJECT_ID
:包含专用池的 Google Cloud 项目的 ID。REGION
:您在其中创建了专用池的区域。
查看专用池的详细信息
IAM 权限:您需要 Cloud Build WorkerPool Viewer 角色才能执行此任务。有关授予此角色的说明,请参阅配置对 Cloud Build 资源的访问权限。
要查看专用池的详细信息,请执行以下操作:
控制台
在 Google Cloud 控制台中打开工作器池页面:
选择您在其中创建了专用池的项目
点击专用池名称。
此时会显示修改专用池侧边栏,其中包含该专用池的详细信息。
gcloud
如果您不知道专用池的 ID,请运行以下命令以列出专用池的详细信息:
gcloud builds worker-pools list --project=PRIVATEPOOL_PROJECT_ID
其中 PRIVATEPOOL_PROJECT_ID
是包含专用池的 Google Cloud 项目的 ID。
您应该会看到类似于如下内容的输出:
NAME CREATE_TIME STATUS
projects/[PRIVATEPOOL_PROJECT_ID]/locations/us-central1/workerPools/[PRIVATEPOOL_ID] 2018-11-19T16:08:24+00:00 RUNNING
如果您知道专用池 ID,请运行以下命令来获取专用池的详细信息:
gcloud builds worker-pools describe PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_ID
:专用池的 ID。REGION
:您在其中创建了专用池的区域。PRIVATEPOOL_PROJECT_ID
:Google Cloud 项目的 ID 包含您的专用池
API
如果您不知道专用池的 ID,请运行以下 cURL 命令以列出专用池的详细信息,其中 PRIVATEPOOL_PROJECT_ID
是包含专用池的 Google Cloud 项目的 ID:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools
如果您知道专用池 ID,请运行以下 cURL 命令以获取专用池的详细信息:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_ID
:专用池的 ID。PRIVATEPOOL_PROJECT_ID
:包含专用池的 Google Cloud 项目的 ID。REGION
:在其中创建了专用池的地区。
删除专用池
IAM 权限:您需要 Cloud Build WorkerPool Owner 角色才能执行此任务。有关授予此角色的说明,请参阅配置对 Cloud Build 资源的访问权限。
要删除专用池,请执行以下操作:
控制台
在 Google Cloud 控制台中打开工作器池页面:
在专用池所在的行中,点击垃圾桶图标。
gcloud
要删除专用池,请运行 gcloud builds worker-pools
delete
命令:
gcloud builds worker-pools delete PRIVATEPOOL_ID \
--region=REGION \
--project=PRIVATEPOOL_PROJECT_ID
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_ID
:专用池的 ID。PRIVATEPOOL_PROJECT_ID
:包含专用池的 Google Cloud 项目的 ID。REGION
:在其中创建了专用池的地区。
删除专用池后,您应该会看到类似于以下内容的输出:
Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[PRIVATEPOOL_ID].
API
使用 cURL 调用 Cloud Build API:
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID
将上述命令中的占位值替换为以下内容:
PRIVATEPOOL_ID
:专用池的 ID。PRIVATEPOOL_PROJECT_ID
:Google Cloud 项目的 ID 包含您的专用池REGION
:在其中创建了专用池的地区。
后续步骤
- 了解如何在专用池中运行构建。
- 了解如何将 VPC Service Controls 与专用池搭配使用。