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

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

  • 共有 VPC ネットワークを使用して Cloud TPU GKE クラスタを設定します。
  • クラスタ、共有 VPC、Google マネージド サービス間の通信を確保するために、必要な APIIP 範囲を設定します。
  • クラスタ Pod と Service のセカンダリ 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 用にセカンダリ CIDR 範囲を 2 つ追加します。

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

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

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

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

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 を使用したクラスタの設定のクリーンアップの手順に沿って、クラスタとネットワーク リソースを削除します。