共有 VPC を使用した Cloud TPU を使用する GKE クラスタ

このガイドでは、次の方法について説明します。

  • 共有 VPC ネットワークを使用して Cloud TPU GKE クラスタを設定します。
  • 必要な APIIP 範囲を設定して、クラスタ、共有 VPC、Google マネージド サービス間の通信を確保します。
  • クラスタ Pod とサービスのセカンダリ CIDR 範囲を作成します。

コンセプト

このガイド全般を通して、以下のコンセプトを頻繁に使用します。

  • ホスト プロジェクト: 1 つ以上の共有 VPC ネットワークを含むプロジェクト。このガイドでは、このプロジェクトに共有 VPC が含まれます。

  • サービス プロジェクト: 共有 VPC 管理者によってホスト プロジェクトに接続されているプロジェクト。接続したプロジェクトには、共有 VPC への参加が許可されます。このガイドでは、このプロジェクトに Cloud TPU クラスタが含まれます。

要件

API を有効にする

  1. Google Cloud コンソールで、ホスト プロジェクトに対して次の API を有効にします。

  2. Google Cloud コンソールで、サービス プロジェクトに対して次の API を有効にします。

Google マネージド サービスへの VPC ピアリングの IP 範囲を設定する

次の手順で、ホスト プロジェクトの共有 VPC ネットワークで IP 範囲を予約します。この範囲は、この VPC ネットワーク内のすべての Google マネージド サービスで使用されます。Cloud TPU は Google マネージド サービスの 1 つです。

  1. 共有 VPC ネットワーク内の既存の IP 範囲を一覧表示します。

    $ gcloud beta compute networks list-ip-addresses network \
    --project=host-project-id
  2. 使用可能な範囲を選択し、共有 VPC ネットワークで予約します。

    $ gcloud beta compute addresses create peering-name \
      --global \
      --prefix-length=16 \
      --network=network \
      --purpose=VPC_PEERING \
      --project=host-project-id

    peering-name は、VPC ピアリング接続の名前を指定します。この名前は次のステップで使用します。

  3. ホスト プロジェクトと Google マネージド サービス間に VPC ネットワーク ピアリング接続を作成します。

    $ gcloud beta services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=network \
      --ranges=peering-name \
      --project=host-project-id

クラスタのセカンダリ IP 範囲を作成する

共有 VPC ネットワークでサブネットワークを選択または作成し、クラスタ Pod と Service に 2 つのセカンダリ CIDR 範囲を追加します。

これらの範囲は、それぞれクラスタの Pod と Service 用です。範囲名は次の手順で使用します。

  • subnet は、ホスト プロジェクトの network のサブネットワークです。

  • tier-1-name は、subnet の GKE Pod で使用されるセカンダリ範囲の名前です。

  • tier-2-name は、subnet の GKE Services で使用されるセカンダリ範囲の名前です。

Cloud TPU で GKE クラスタを作成する

次のコマンドは、共有 VPC ネットワークの既存の CIDR 範囲を使用して GKE を作成し、Cloud TPU を有効にする方法を示しています。

$ gcloud beta container clusters create cluster-name \
  --enable-ip-alias \
  --network projects/host-project-id/global/networks/network \
  --subnetwork projects/host-project-id/regions/region/subnetworks/subnet \
  --cluster-secondary-range-name tier-1-name \
  --services-secondary-range-name tier-2-name \
  --scopes=cloud-platform \
  --enable-tpu \
  --enable-tpu-service-networking \
  --project=service-project-id

GKE で Cloud TPU アプリケーションを実行するガイドの Pod 仕様の手順に沿って、Cloud TPU リソースを使用するジョブをビルドします。

クリーンアップ

GKE 上で Cloud TPU を使い終わったら、リソースをクリーンアップして、Cloud 請求先アカウントに余分に課金されないようにしてください。

  1. 予約済みのピアリング IP 範囲を削除します。

    $ gcloud beta compute addresses delete peering-name \
      --global \
      --project=host-project-id
  2. 共有 VPC を使用したクラスタの設定のクリーンアップの手順に沿って、クラスタとネットワーク リソースを削除します。