Pathways を使用して GKE クラスタを作成する

Cluster Toolkit を使用すると、Pathways ベースのワークロード用に事前構成された Google Kubernetes Engine(GKE)クラスタを作成できます。gcloud を使用して、Pathways ベースのワークロード用の GKE クラスタを手動で作成することもできます。

始める前に

インストールに必要なもの:

ローカル環境を設定する

Google Cloud の認証情報でログインします。

gcloud auth application-default login

ワークロードに適した値を使用して、次の環境変数を定義します。

GKE クラスタを作成する

次の例では、TPU v6e 2x4 ノードプールを含むクラスタを作成します。クラスタを作成するには、Cluster Toolkit または gcloud CLI を使用します。

Cluster Toolkit

  1. Cluster Toolkit を設定する。
  2. GKE TPU v6e クラスタをデプロイするの手順に沿って、GKE TPU クラスタをデプロイします(すべての TPU デプロイ オプションの概要については、Cloud TPU デプロイの概要をご覧ください)。

    デプロイ ブループリントを構成する際は、次の操作を行います。

    • enable_pathways_for_tpus が true に設定されていることを確認します(Cluster Toolkit TPU ブループリントではデフォルトで有効になっています)。これにより、Pathways コントローラに必要な cpu-np CPU ノードプール(n4-standard-64)と Kueue 構成が自動的にプロビジョニングされます。
    • num_slices は、ワークロードに必要な TPU スライス ノードプールの数に設定します。
    • tpu_topology を、選択した TPU スライスのトポロジ(2x4 や 4x4 など)に設定します。
    • 予約済み容量を使用している場合は、reservation を TPU 予約の名前に設定します。

    クラスタが作成されたら、--pathways フラグを指定して gcluster job submit コマンドを使用し、Pathways ワークロードを送信できます。

gcloud

  1. いくつかの環境変数を設定します

    CLUSTER=GKE_CLUSTER_NAME
    PROJECT=PROJECT_ID
    ZONE=ZONE
    REGION=REGION
    CLUSTER_VERSION=GKE_CLUSTER_VERSION
    PW_CPU_MACHINE_TYPE="n2-standard-64"
    NETWORK=NETWORK
    SUBNETWORK=SUB_NETWORK
    CLUSTER_NODEPOOL_COUNT=3
    TPU_MACHINE_TYPE="ct6e-standard-4t"
    WORKERS_PER_SLICE=2
    TOPOLOGY="2x4"
    NUM_CPU_NODES=1

    次のように置き換えます。

    • CLUSTER: GKE クラスタ名
    • PROJECT_ID: Google Cloud プロジェクト名
    • ZONE: リソースを作成するゾーン
    • REGION: リソースを作成するリージョン
    • CLUSTER_VERSION: [省略可] GKE クラスタ バージョン。1.32.2-gke.1475000 以降を使用します。
    • NETWORK: [省略可] Virtual Private Cloud の名前を設定します。これは、クラスタを作成する前に作成する必要があります。
    • SUBNETWORK: [省略可] サブネットワーク名を設定します。これは、クラスタを作成する前に作成する必要があります。

次の手順では、GKE クラスタを作成し、Pathways ワークロードを実行するように設定する方法について説明します。

  1. GKE クラスタを作成します。

    gcloud beta container clusters create ${CLUSTER} \
    --project=${PROJECT} \
    --zone=${ZONE} \
    --cluster-version=${CLUSTER_VERSION} \
    --scopes=storage-full,gke-default,cloud-platform \
    --machine-type ${PW_CPU_MACHINE_TYPE} \
    --network=${NETWORK} \
    --subnetwork=${SUBNETWORK}
    
  2. TPU ノードプールを作成します。

    for i in $(seq 1 ${CLUSTER_NODEPOOL_COUNT}); do
    gcloud container node-pools create "tpu-np-${i}" \
    --project=${PROJECT} \
    --zone=${ZONE} \
    --cluster=${CLUSTER} \
    --machine-type=${TPU_MACHINE_TYPE} \
    --num-nodes=${WORKERS_PER_SLICE} \
    --placement-type=COMPACT \
    --tpu-topology=${TOPOLOGY} \
    --scopes=storage-full,gke-default,cloud-platform \
    --workload-metadata=GCE_METADATA
    done
    
  3. CPU ノードプールを作成します。

    gcloud container node-pools create "cpu-pathways-np" \
    --project ${PROJECT} \
    --zone ${ZONE} \
    --cluster ${CLUSTER} \
    --machine-type ${PW_CPU_MACHINE_TYPE} \
    --num-nodes ${NUM_CPU_NODES} \
    --scopes=storage-full,gke-default,cloud-platform \
    --workload-metadata=GCE_METADATA
    
  4. JobSet API をインストールする

    クラスタの認証情報を取得し、ローカルの kubectl コンテキストに追加します。

    gcloud container clusters get-credentials ${CLUSTER} \
        [--zone=${ZONE} | --region=${REGION}] \
        --project=${PROJECT} \
        && kubectl config set-context --current --namespace=default
    

    GKE クラスタで Pathways アーキテクチャを使用するには、JobSet API をインストールする必要があります。

    kubectl apply --server-side -f https://github.com/kubernetes-sigs/jobset/releases/download/v0.8.0/manifests.yaml
    

次のステップ