使用共享 VPC 具有 Cloud TPU 的 GKE 集群

本指南介绍如何完成以下任务:

  • 使用共享 VPC 网络设置 Cloud TPU GKE 集群。
  • 设置所需的 APIIP 范围,以确保集群、共享 VPC 和 Google 代管式服务之间的通信。
  • 为集群 Pod 和服务创建次要 CIDR 范围

概念

本指南中会经常用到以下概念:

  • 宿主项目:包含一个或多个共享 VPC 网络的项目。在本指南中,该项目将包含您的共享 VPC。

  • 服务项目:由共享 VPC 管理员连接到宿主项目的项目。此连接允许其参与共享 VPC。在本指南中,此项目将包含您的 Cloud TPU 集群。

使用要求

启用 API

  1. 在 Google Cloud 控制台上,为您的宿主项目启用以下 API:

  2. 在 Google Cloud 控制台上,为您的服务项目启用以下 API:

设置 VPC 对等互连到 Google 代管式服务的 IP 范围

请按照以下步骤在宿主项目的共享 VPC 网络中预留 IP 范围。此 VPC 网络中的所有 Google 代管式服务都将使用该范围。Cloud TPU 是 Google 代管式服务之一。

  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 和服务添加两个次要 CIDR 范围。

这些范围分别适用于集群的 Pod 和服务。范围名称将在以下步骤中使用。

  • subnet 将是您的宿主项目的 network 中的子网。

  • tier-1-name 将是 subnet 中 GKE Pod 使用的次要范围的名称。

  • tier-2-name 将是 subnet 中 GKE 服务使用的次要范围的名称。

创建具有 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 Billing 账号产生额外扣款。

  1. 删除预留的对等互连 IP 范围。

    $ gcloud beta compute addresses delete peering-name \
      --global \
      --project=host-project-id
    
  2. 按照“使用共享 VPC 设置集群”中清理中的说明删除集群和网络资源。