创建和管理专用池

本页面介绍如何创建、更新、查看和删除 Cloud Build 专用池。如果您不熟悉专用池,请参阅专用池概览

准备工作

  1. 创建新的 Cloud 项目或选择现有项目。您将使用此项目创建专用池。

  2. 启用 Cloud Build API。

    启用 API

  3. 如需使用本指南中的命令行示例,请安装并配置 Cloud SDK

  4. [可选] 要使构建能够从 Virtual Private Cloud 网络访问私有资源,您必须在您的 Virtual Private Cloud 网络与专用池所在的 Virtual Private Cloud 网络之间建立对等互连连接。如需了解相关说明,请参阅设置环境以创建专用池

创建新的专用池

IAM 权限:您需要 Cloud Build WorkerPool Owner 角色才能执行此任务。有关授予此角色的说明,请参阅配置对 Cloud Build 资源的配置权限

您可以按区域为每个 Cloud 项目最多创建 10 个专用池。如需创建新的专用池,请按以下所述操作:

控制台

  1. 在 Google Cloud Console 中,打开工作器池页面:

    打开 Cloud Build 工作器池页面

  2. 选择要在其中创建专用池的项目。

  3. 工作器池页面中,点击创建

  4. 创建专用池侧边栏中:

    1. 输入专用池的名称。此值应为 1-63 个字符,有效字符为 /[a-z][0-9]-/。

    2. 选择要在其中创建专用池的区域。

    3. 选择要用于专用池的 Compute Engine 机器类型。

    4. 输入专用池的磁盘大小。指定一个大于或等于 100 且小于或等于 1000 的值。如果未提供值,则 Cloud Build 将使用大小为 100 的磁盘。

    5. 输入您的 Virtual Private Cloud 网络所在的 Cloud 项目的项目编号。如果将此字段留空,则专用池将使用服务提供方网络。如需了解可用的网络配置选项和含义,请参阅设置您的环境

    6. 输入您的 VPC 网络的名称。如果将此字段留空,则专用池将使用服务提供方网络。如需了解可用的网络配置选项和含义,请参阅设置您的环境

    7. 分配外部 IP 默认处于选中状态。选择此选项将允许专用池访问公共互联网。

    8. 点击创建

gcloud

您可以通过两种方式使用 gcloud 创建新的专用池:您可以将工作器池配置文件传递给 gcloud 命令,也可以直接将配置选项传递给 gcloud 命令。

将工作器池配置文件传递给 gcloud 命令

  1. 创建 YAML 或 JSON 格式的工作器池配置文件

  2. 运行以下 gcloud 命令,其中 WORKERPOOL_ID 是自定义工作器池的唯一标识符,WORKERPOOL_CONFIG_FILE 是您的工作器池配置文件的名称,REGION 是您要在其中创建工作器池的地区

    gcloud builds worker-pools create WORKERPOOL_ID --config-from-file WORKERPOOL_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 WORKERPOOL_ID \
        --project=WORKERPOOL_PROJECT_ID \
        --region=REGION \
        --peered-network=PEERED_NETWORK \
        --worker-machine-type=WORKERPOOL_MACHINE_TYPE \
        --worker-disk-size=WORKERPOOL_DISK_SIZE_GB \
        --no-public-egress

将上述命令中的占位值替换为以下内容:

  • WORKERPOOL_ID:专用池的唯一标识符。此值应为 1-63 个字符,有效字符为 [a-zA-Z0-9_-]+
  • WORKERPOOL_PROJECT_ID:要在其中创建专用池的 Cloud 项目的 ID。
  • REGION:某个受支持的地区
  • PEERED_NETWORK:与服务提供方网络建立对等互连的网络的网络资源网址。PEERED_NETWORK 必须采用 projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME 格式,其中 NETWORK_PROJECT_ID 是 VPC 网络所在的 Cloud 项目的 ID,NETWORK_NAME 是 VPC 网络的名称。如果您未指定值,则 Cloud Build 将使用服务提供商网络。
  • WORKERPOOL_DISK_SIZE_GB:挂接到专用池的磁盘的大小。指定一个大于或等于 100 且小于或等于 1000 的值。如果未提供值,则 Cloud Build 将使用大小为 100 的磁盘。如果您在 gcloud builds submit 期间使用 --disk-size 指定不同的磁盘大小,则会覆盖 --worker-disk-size
  • WORKERPOOL_MACHINE_TYPE:工作器的机器类型。如果留空,Cloud Build 将使用默认值 e2-standard-2。如需查看支持的机器类型的列表,请参阅工作器池配置文件架构。如果您在 gcloud builds submit 期间使用 --machine-type 指定其他机器类型,则会替换 --worker-machine-type
  • --no-public-egress:如果设置此标志,则创建没有外部 IP 地址的专用池。如果您要在 VPC Service Controls 边界内创建专用池,请设置此标志。

API

  1. 创建工作器池配置文件并命名为 workerpool.json

  2. 使用 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/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools/?workerPoolId=WORKERPOOL_ID -d @workerpool.json
    

    将上述命令中的占位值替换为以下内容:

    • WORKERPOOL_PROJECT_ID:要在其中创建专用池的 Cloud 项目的 ID。
    • WORKERPOOL_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 资源的访问权限

您可以更新现有节点池的工作器磁盘大小和工作器机器类型。要更新专用池,请执行以下操作:

控制台

  1. 在 Google Cloud Console 中,打开工作器池页面:

    打开 Cloud Build 工作器池页面

  2. 选择您在其中创建了专用池的项目。

  3. 点击工作器池名称。

  4. 修改专用池侧边栏中,更新机器类型和/或磁盘大小。

  5. 点击保存

gcloud

通过更新工作器池配置文件,您可以:

  1. 工作器池配置文件中更新相关字段。

  2. 运行以下命令,其中 WORKERPOOL_ID 是专用池的唯一标识符,WORKERPOOL_CONFIG_FILE 是工作器池配置文件的名称:

    gcloud builds worker-pools update WORKERPOOL_ID --config-from-file=WORKERPOOL_CONFIG_FILE
    

将要更新的值直接传递给 gcloud builds worker-pools update 命令

   gcloud builds worker-pools update WORKERPOOL_ID  \
    --worker-disk-size=WORKERPOOL_DISK_SIZE \
    --worker-machine-type=WORKERPOOL_MACHINE_TYPE

将上述命令中的占位值替换为以下内容:

  • WORKERPOOL_ID:现有专用池的 ID。您无法更新此值;您必须指定现有工作器池 ID。
  • WORKERPOOL_DISK_SIZE:更新后的磁盘大小。
  • WORKERPOOL_MACHINE_TYPE 是更新后的机器类型。

API

  1. 工作器池配置文件中,更新工作器磁盘大小和/或工作器机器类型。

  2. 使用 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/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools/WORKERPOOL_ID \
        -d @workerpool.json
    

    将上述命令中的占位值替换为以下内容:

    • WORKERPOOL_ID:专用池的 ID。
    • WORKERPOOL_PROJECT_ID:包含专用池的 Cloud 项目的 ID。
    • REGION:创建工作器池的某个受支持的区域

查看专用池的详细信息

IAM 权限:您需要 Cloud Build WorkerPool Viewer 角色才能执行此任务。有关授予此角色的说明,请参阅配置对 Cloud Build 资源的访问权限

要查看专用池的详细信息,请执行以下操作:

控制台

  1. 在 Cloud Console 中,打开工作器池页面:

    打开 Cloud Build 工作器池页面

  2. 选择您在其中创建了专用池的项目

  3. 点击工作器池名称。

此时会显示修改专用池侧边栏,其中包含该专用池的详细信息。

gcloud

如果您不知道专用池的 ID,请运行以下命令以列出专用池的详细信息:

gcloud builds worker-pools list --project=WORKERPOOL_PROJECT_ID

其中 WORKERPOOL_PROJECT_ID 是包含专用池的 Cloud 项目的 ID。

您应该会看到类似于如下内容的输出:

NAME                                                                  CREATE_TIME                STATUS
projects/[WORKERPOOL_PROJECT_ID]/locations/us-central1/workerPools/[WORKERPOOL_ID]      2018-11-19T16:08:24+00:00  RUNNING

如果您知道专用池 ID,请运行以下命令来获取工作器池的详细信息:

gcloud builds worker-pools describe \
    --project=WORKERPOOL_PROJECT_ID WORKERPOOL_ID

将上述命令中的占位值替换为以下内容:

  • WORKERPOOL_ID:专用池的 ID。
  • WORKERPOOL_PROJECT_ID:包含专用池的 Cloud 项目的 ID。

API

如果您不知道专用池的 ID,请运行以下 cURL 命令以列出专用池的详细信息,其中 WORKERPOOL_PROJECT_ID 是包含专用池的 Cloud 项目的 ID:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools

如果您知道专用池 ID,请运行以下 cURL 命令以获取专用池的详细信息:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools/WORKERPOOL_ID

将上述命令中的占位值替换为以下内容:

  • WORKERPOOL_ID:专用池的 ID。
  • WORKERPOOL_PROJECT_ID:包含专用池的 Cloud 项目的 ID。
  • REGION:创建了工作器池的地区

删除工作器池

IAM 权限:您需要 Cloud Build WorkerPool Owner 角色才能执行此任务。有关授予此角色的说明,请参阅配置对 Cloud Build 资源的访问权限

要删除专用池,请执行以下操作:

控制台

  1. 在 Cloud Console 中,打开工作器池页面:

    打开 Cloud Build 工作器池页面

  2. 在专用池所在的行中,点击垃圾桶图标。

gcloud

要删除专用池,请运行 gcloud builds worker-pools delete 命令:

 gcloud builds worker-pools delete WORKERPOOL_ID \
     --project=WORKERPOOL_PROJECT_ID

将上述命令中的占位值替换为以下内容:

  • WORKERPOOL_ID:专用池的 ID。
  • WORKERPOOL_PROJECT_ID:包含专用池的 Cloud 项目的 ID。

删除专用池后,您应该会看到类似于以下内容的输出:

 Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[WORKERPOOL_ID].

API

使用 cURL 调用 Cloud Build API:

  curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      https://cloudbuild.googleapis.com/v1/projects/WORKERPOOL_PROJECT_ID/locations/REGION/workerPools/WORKERPOOL_ID

将上述命令中的占位值替换为以下内容:

  • WORKERPOOL_ID:专用池的 ID。
  • WORKERPOOL_PROJECT_ID:包含专用池的 Cloud 项目的 ID。
  • REGION:创建了工作器池的地区

后续步骤