プライベート プールの作成と管理

このページでは、Cloud Build プライベート プールを作成、更新、表示、削除する方法について説明します。プライベート プールの情報については、プライベート プールの概要をご覧ください。

始める前に

  1. 新しい Google Cloud プロジェクトを作成するか、既存のプロジェクトを選択します。このプロジェクトを使用して、プライベート プールを作成します。

  2. Enable the Cloud Build API.

    Enable the API

  3. このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。

  4. [省略可] ビルドで Virtual Private Cloud ネットワークからプライベート リソースにアクセスするには、Virtual Private Cloud ネットワークとプライベート プールがある Virtual Private Cloud ネットワークの間にピアリング接続を設定する必要があります。手順については、プライベート プールを作成するための環境を設定するをご覧ください。

新しいプライベート プールの作成

IAM 権限: このタスクを実行するには、Cloud Build WorkerPool オーナーのロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

リージョンごとの Google Cloud プロジェクトごとに最大 10 個のプライベート プールを作成できます。新しいプライベート プールを作成するには:

コンソール

  1. Google Cloud Console で [ワーカープール] ページを開きます。

    Cloud Build ワーカープールのページを開く

  2. プライベート プールを作成するプロジェクトを選択します。

  3. [ワーカープール] ページで、[作成] をクリックします。

    [プライベート プールの作成] サイドパネルが表示されます。

    次の情報を入力して、プライベート プールを作成します。

    1. 名前: プライベート プールの名前を入力します。この値には、英数字 /[a-z][0-9]/ またはダッシュ - のみを使用できます。プライベート プールの名前は 1~63 文字にする必要があります。

    2. リージョン: プライベート プールを作成するリージョンを選択します。

    3. マシンタイプ: プライベート プールに使用する Compute Engine マシンタイプを選択します。

    4. 使用可能なディスクサイズ: プライベート プールのディスクサイズを入力します。100 以上、4,000 以下の値を指定します。値を指定しない場合、Cloud Build は ディスクサイズ 100 を適用します。

      [ネットワークの種類] で、次のいずれかのオプションを選択します。

      1. デフォルト ネットワーク: 公共のインターネット経由でインスタンスにアクセスできる場合は、このオプションを選択します。[デフォルトのネットワーク] オプションが選択されている場合、プライベート プールはサービス プロデューサー ネットワークを使用します。詳細については、VPC ネットワークでプライベート プールを使用するように環境を設定するをご覧ください。

      2. プライベート ネットワーク: インスタンスがプライベート ネットワークでホストされている場合は、このオプションを選択します。

        1. プロジェクト: Google Cloud プロジェクト ID を選択します。

        2. ネットワーク: プルダウン メニューからネットワークを選択します。ネットワークを作成していない場合は、VPC ネットワークを作成して管理するでネットワークの作成方法を確認してください。

        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.0 から 192.0.2.255 です。

          注: 接頭辞長の値は /29 以下にする必要があります。範囲に値が指定されていない場合は、デフォルト値の /24 が自動的に割り当てられます。接頭辞長に値が指定されていない場合、ピアリングされた VPC ネットワーク内で IP アドレスが自動的に割り当てられます。IP アドレスに値が指定されていない場合、ピアリングされた VPC ネットワーク内の範囲が IP アドレスに自動的に割り振られます。

    5. 外部 IP を割り当てる: このオプションはオプションで選択され、プライベート プールが公共のインターネットにアクセスできるようになります。プライベート ネットワークへのアクセスを制限するには、このチェックボックスをオフにします。

  4. [作成] をクリックして、プライベート プールを作成します。

gcloud

gcloud を使用して新しいプライベート プールを作成する場合、2 つの方法があります。プライベート プール構成ファイルを gcloud コマンドに渡すか、構成オプションを直接 gcloud コマンドに渡します。

プライベート プール構成ファイルを gcloud コマンドに渡す:

  1. プライベート プール構成ファイルを YAML 形式または JSON 形式で作成します。

  2. 次の 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: プライベート プールの一意の ID。この値は 1 ~ 63 文字で、有効な文字は [a-zA-Z0-9_-]+ です。
  • PRIVATEPOOL_PROJECT_ID: プライベート プールを作成する Google Cloud プロジェクトの ID。
  • REGION: サポートされているリージョンの 1 つ。
  • PEERED_NETWORK: サービス プロデューサー ネットワークとピアリングされているネットワークのネットワーク リソース URL。PEERED_NETWORKprojects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME の形式にする必要があります。ここで、NETWORK_PROJECT_ID は、VPC ネットワークを保持する Google Cloud プロジェクトのプロジェクト ID、NETWORK_NAME は VPC ネットワークの名前です。 値を指定しない場合、Cloud Build はサービス プロバイダ ネットワークを使用します。
  • PRIVATEPOOL_DISK_SIZE_GB: プライベート プールにアタッチされているディスクのサイズ。100 以上、4,000 以下の値を指定します。値を指定しない場合、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

  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 編集者のロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

既存のプライベート プールのディスクサイズとマシンタイプを更新できます。プライベート プールを更新するには、次を実行します。

コンソール

  1. Google Cloud Console で [ワーカープール] ページを開きます。

    Cloud Build ワーカープールのページを開く

  2. プライベート プールを作成したプロジェクトを選択します。

  3. プライベート プール名をクリックします。

  4. [プライベート プールの編集] サイドパネルで、マシンタイプやディスクサイズを更新します。

  5. [保存] をクリックします。

gcloud

プライベート プール構成ファイルを更新する場合:

  1. プライベート プール構成ファイル内で、変更するフィールドを更新します。

  2. 次のコマンドを実行します。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

  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 閲覧者のロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

プライベート プールの詳細を表示するには次を実行します。

コンソール

  1. Google Cloud Console で [ワーカープール] ページを開きます。

    Cloud Build ワーカープールのページを開く

  2. プライベート プールを作成したプロジェクトを選択します。

  3. プライベート プール名をクリックします。

[プライベート プールの編集] サイドパネルが表示されます。パネルには、プライベート プールの詳細が表示されます。

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 オーナーのロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

プライベート プールを削除するには:

コンソール

  1. Google Cloud Console で [ワーカープール] ページを開きます。

    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: プライベート プールを作成したリージョン

次のステップ