通过学习路线创建 GKE 集群

您可以使用加速处理套件 (XPK) 创建预配置的 Google Kubernetes Engine (GKE) 集群,以用于基于 Pathway 的工作负载。您还可以使用 gcloud 手动为基于 Pathway 的工作负载创建 GKE 集群

准备工作

请确保您已备妥:

设置本地环境

使用您的 Google Cloud 凭据登录。

gcloud auth application-default login

使用适合工作负载的值定义以下环境变量。

必需的变量

创建 GKE 集群

在以下示例中,您将创建一个包含两个 v5e 2x4 节点池的集群。您可以使用 XPK 或 gcloud 命令创建集群。

XPK

  1. 设置一些环境变量

    CLUSTER_NODEPOOL_COUNT=CLUSTER_NODEPOOL_COUNT
    PROJECT=PROJECT_ID
    ZONE=ZONE
    CLUSTER=GKE_CLUSTER_NAME
    TPU_TYPE="v5litepod-8"
    PW_CPU_MACHINE_TYPE="n2-standard-64"
    NETWORK=NETWORK
    SUBNETWORK=SUB_NETWORK

    替换以下内容:

    • CLUSTER_NODEPOOL_COUNT:工作负载可以使用的节点池数量上限
    • PROJECT_ID:您的 Google Cloud 项目名称
    • ZONE:您要创建资源的可用区
    • CLUSTER:GKE 集群名称
    • TPU_TYPE:TPU 类型。如需了解详情,请参阅 XPK 中支持的类型
    • PW_CPU_MACHINE_TYPE:Pathways 控制器的 CPU 节点类型
    • NETWORK:[可选] 如果使用 XPK,请设置虚拟私有云名称,此名称必须在创建集群之前创建
    • SUBNETWORK:[可选] 如果使用 XPK,请设置子网名称,此子网必须在创建集群之前创建
  2. 使用 XPK 创建 GKE Pathways 集群。此命令可能需要几分钟才能完成容量预配。完成后,系统会分配容量,并开始向您收取费用。

    xpk cluster create-pathways \
    --num-slices=${CLUSTER_NODEPOOL_COUNT} \
    --tpu-type=${TPU_TYPE} \
    --pathways-gce-machine-type=${PW_CPU_MACHINE_TYPE} \
    --on-demand \
    --project=${PROJECT} \
    --zone=${ZONE} \
    --cluster=${CLUSTER} \
    --custom-cluster-arguments="--network=${NETWORK} --subnetwork=${SUBNETWORK} --enable-ip-alias"

创建集群后,您可以根据需要创建和删除工作负载。您无需重新预配 TPU 容量。

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="ct5lp-hightpu-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 或更高版本
    • PW_CPU_MACHINE_TYPE:Pathways 控制器的 CPU 节点类型
    • NETWORK:[可选] 如果使用 XPK,请设置虚拟私有云名称,此名称必须在创建集群之前创建
    • SUBNETWORK:[可选] 如果使用 XPK,请设置子网名称,此子网必须在创建集群之前创建
    • CLUSTER_NODEPOOL_COUNT:工作负载可以使用的节点池数量上限
    • TPU_MACHINE_TYPE:您要使用的 TPU 机器类型
    • WORKERS_PER_SLICE:每个节点池的节点数

    • GKE_ACCELERATOR_TYPE:Google Kubernetes Engine 加速器类型,请参阅选择 TPU 版本

    • TOPOLOGY:TPU 拓扑

    • NUM_CPU_NODES:Pathways CPU 节点池大小

以下步骤介绍了如何创建 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. 安装 JobSetPathwaysJob 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 和 PathwaysJob API。

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

后续步骤