建立及管理私人集區

本頁說明如何建立、更新、查看及刪除 Cloud Build 私人集區。如���您不熟悉私人集區,請參閱私人集區���覽

事前準備

  1. 建立新 Google Cloud 專案或選擇現有專案。您將使用這個專案建立私人集區。

  2. Enable the Cloud Build API.

    Enable the API

  3. 如要使用本指南提供的指令列範例,請安裝並設定 Google Cloud CLI

  4. 選用:如果您希望建構作業能夠存取虛擬私有雲網路中的私人資源,就必須在虛擬私有雲網路與私人資源所在的虛擬私有雲網路之間建立對等互連連線。如需操作說明,請參閱「設定環境以建立私人集區」。

建立新的私人集區

IAM 權限:您必須具備 Cloud Build WorkerPool Owner 角色才能執行這項工作。如需授予此角色的操作說明,請參閱「設定 Cloud Build 資源的存取權」。

如要建立新的私人集區,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中開啟「Worker Pool」頁面:

    開啟 Cloud Build 工作站集區頁面

  2. 選取要建立私人集區的專案。

  3. 在「Worker pool」(工作站集區) 頁面中,按一下「Create」(建立)

    畫面上會顯示「Create private pool」側邊面板。

    輸入下列資訊即可建立私人集區:

    1. 名稱:輸入私人集區的名稱。這個值只能包含英數字元 /[a-z][0-9]/ 或連字號 -。私人集區的名稱長度必須介於 1 至 63 個半形字元之間。

    2. 區域:選取要建立私人集區的區域。

    3. Machine type (機器類型):選取要用於私人集區的 Compute Engine 機器類型。

    4. 可用磁碟大小:輸入私人集區的磁碟大小。請指定大於或等於 100 且小於或等於 4000 的值。如果未提供,Cloud Build 會使用 100 的磁碟大小。

      在「Network type」下方,選取下列任一選項:

      1. 預設網路:如果您可以透過公開網際網路存取執行個體,請選取這個選項。選取「預設網路」選項後,私人集區會使用服務供應者網路。詳情請參閱「設定環境,以便在 VPC 網路中使用私人資源池」。

      2. 私人網路:如果執行個體是託管在私人網路上,請選取這個選項。

        1. 專案:選取您的 Google Cloud 專案 ID。

        2. 網路:從下拉式選單中選取網路。如果您尚未建立網路,請參閱「建立及管理虛擬私有雲網路」,瞭解如何建立網路。

        3. IP 範圍:輸入 Cloud Build 供應者網��可用於將 VM 分配給與私人存放區維持連線的內部 IP 範圍。

          您可以使用 STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE 格式的無類別跨網域路由 (CIDR) 路由標記法指定範圍。例如 192.0.2.0/24 的前置碼長度為 24。IP 範圍的前 24 位元會用於子網路遮罩 (192.0.2.0),而可能的主機位址範圍則從 192.0.2.0192.0.2.255

          前置字串長度不得超過 /29。如果未指定範圍值,系統會自動指派預設值 /24。如果未指定前置字元長度值,系統會在已建立連線的 VPC 網路中自動指派 IP 位址。如果未指定 IP 位址值,系統會自動在對等 VPC 網路中指派 IP 位址範圍。

    5. 指派外部 IP:這個選項預設為選取,可讓私人資源池存取公開網際網路。取消勾選這個方塊,即可限制私人網路的存取權。

  4. 按一下「建立」即可建立私人集區。

gcloud

您可以使用 gcloud 建立新的私人集區,方法有兩種:您可以將私人集區設定檔傳入 gcloud 指令,或是直接將設定選項傳入 gcloud 指令。

將私人集區設定檔傳遞至 gcloud 指令:

  1. 以 YAML 或 JSON 格式建立私人資源池設定檔

  2. 執行下列 gcloud 指令,其中 PRIVATEPOOL_ID 是私人集區的不重複 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:私人資源池的專屬 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 是儲存虛擬私有雲端網路的 Google Cloud 專案 ID,NETWORK_NAME 則是虛擬私有雲端網路的名稱。如果您未指定值,Cloud Build 會使用服務供應商的網路。
  • PRIVATEPOOL_DISK_SIZE_GB:連結至私人集區的磁碟大小。請指定大於或等於 100 且小於或等於 4000 的值。如果未提供,Cloud Build 會使用 100 的磁碟大小。如果您在 gcloud builds submit 期間使用 --disk-size 指定不同的磁碟大小,--worker-disk-size 就會遭到覆寫。
  • PRIVATEPOOL_MACHINE_TYPE:worker 的機器類型。如果留空,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/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 資源的存取權」。

您可以更新現有私人集區的磁碟大小和機器類型。如要更新私人集區,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中開啟「Worker pool」頁面:

    開啟 Cloud Build 工作站集區頁面

  2. 選取您建立私人集區的專案。

  3. 按一下私人集區名稱。

  4. 如有需要,請在「編輯私人集區」側邊面板中更新機器類型和磁碟大小。

  5. 按一下 [儲存]

gcloud

透過更新私人集區設定檔:

  1. 私人集區設定檔中更新您需要變更的欄位。

  2. 執行下列指令,其中 PRIVATEPOOL_ID 是私人集區的不重複 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

  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/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 資源的存取權」。

如要查看私人資源池的詳細資料,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中開啟「Worker pool」頁面:

    開啟 Cloud Build 工作站集區頁面

  2. 選取您建立私人集區的專案

  3. 按一下私人集區名稱。

系統會顯示「Edit private pool」側邊面板,其中包含私人集區的詳細資料。

gcloud

如果您不知道私人集區的 ID,請執行下列指令,列出私人集區的詳細資料:

gcloud builds worker-pools list --region=REGION --project=PRIVATEPOOL_PROJECT_ID

其中:

  • PRIVATEPOOL_PROJECT_ID 是包含私人集區的Google Cloud 專案 ID。
  • REGION 是私人集區的區域。

畫面會顯示類似以下的輸出:

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 資源的存取權」。

如要刪除私人集區,請按照下列步驟操作:

主控台

  1. 在 Google Cloud 控制台中開啟「Worker pool」頁面:

    開啟 Cloud Build 工作站集區頁面

  2. 在您的私人集區那一列中,點選「垃圾桶」圖示。

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:您建立私人集區的區域

後續步驟