使用 TPU 启动 Google Cloud GKE 集群以用于 KubeRay#
有关详细信息,请参阅 GKE 文档,或继续阅读以快速开始。
步骤 1:在 GKE 上创建一个 Kubernetes 集群#
在你的本地机器或 Google Cloud Shell 上运行以下命令。如果从本地机器运行,请安装 Google Cloud SDK。
创建一个标准 GKE 集群并在 us-central2-b 计算区域中启用 Ray Operator:
gcloud container clusters create kuberay-tpu-cluster \
--addons=RayOperator \
--machine-type=n1-standard-8 \
--cluster-version=1.30 \
--location=us-central2-b
运行以下命令以向集群添加一个TPU节点池。您也可以从Google Cloud Console创建它:
创建一个具有单主机 TPU 拓扑的节点池,如下所示:
gcloud container node-pools create tpu-pool \
--zone us-central2-b \
--cluster kuberay-tpu-cluster \
--num-nodes 1 \
--min-nodes 0 \
--max-nodes 10 \
--enable-autoscaling \
--machine-type ct4p-hightpu-4t \
--tpu-topology 2x2x1
或者,按如下方式创建一个多主机节点池:
gcloud container node-pools create tpu-pool \
--zone us-central2-b \
--cluster kuberay-tpu-cluster \
--num-nodes 2 \
--min-nodes 0 \
--max-nodes 10 \
--enable-autoscaling \
--machine-type ct4p-hightpu-4t \
--tpu-topology 2x2x2
--tpu-topology 标志指定 TPU Pod 切片的物理拓扑结构。此示例使用具有 2x2x1 或 2x2x2 拓扑结构的 v4 TPU 切片。v4 TPU 每个 VM 主机有 4 个芯片,因此 2x2x2 v4 切片总共有 8 个芯片和 2 个 TPU 主机,每个主机都安排在自己的节点上。GKE 将多主机 TPU 切片视为原子单元,并使用节点池而不是单个节点来扩展它们。因此,TPU 主机的数量应始终等于 TPU 节点池中的节点数量。有关选择 TPU 拓扑结构和加速器的更多信息,请参阅 GKE 文档。
GKE 使用 Kubernetes 节点选择器来确保 TPU 工作负载在所需机器类型和拓扑上运行。更多详情,请参阅 GKE 文档。
步骤 2:配置 kubectl 以连接到集群#
运行以下命令以下载 Google Cloud 凭据并配置 Kubernetes CLI 以使用它们。
gcloud container clusters get-credentials kuberay-tpu-cluster --zone us-central2-b
更多详情,请参阅 GKE 文档。
步骤 3:安装 TPU 初始化 webhook#
GKE 提供了一个 验证和变异 webhook 来处理 TPU Pod 调度和引导用于 JAX 初始化的某些环境变量。Ray TPU webhook 需要至少 v1.1.0 版本的 KubeRay 操作符。GKE 通过 Ray Operator Addon 自动安装 Ray TPU webhook,适用于 GKE 版本 1.30.0-gke.1747000 或更高版本。手动安装 Ray TPU webhook 时,您需要 cert-manager 来处理 TLS 证书注入。您可以使用以下 helm 命令在 GKE 标准和 Autopilot 集群中安装 cert-manager:
[可选] 在没有 Ray 插件的情况下手动安装在 GKE 集群中:#
安装 cert-manager:
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install --create-namespace --namespace cert-manager --set installCRDs=true --set global.leaderElection.namespace=cert-manager cert-manager jetstack/cert-manager
部署 Ray TPU 初始化 webhook:
git clone https://github.com/GoogleCloudPlatform/ai-on-gkecd ray-on-gke/tpu/kuberay-tpu-webhookmake deploy deploy-cert