配置 Cloud TPU 的网络和访问权限

本页面介绍了如何为以下对象设置自定义网络和访问配置: 包括:

  • 指定自定义网络和子网
  • 指定内部 IP 地址
  • 启用对 TPU 的 SSH 访问
  • 将自定义服务账号附加到 TPU
  • 启用自定义 SSH 方法

前提条件

在运行这些步骤之前,您必须安装 Google Cloud CLI、创建 Google Cloud 项目并启用 Cloud TPU API。如需相关说明, 请参阅设置 Cloud TPU 环境

指定自定义网络和子网

您可以选择指定要用于 TPU 的网络和子网。如果 网络未指定,TPU 将位于 default 网络中。子网需要与 TPU 运行的可用区位于同一区域。

  1. 创建符合以下有效格式之一的网络:

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network}
    • compute/{version}/projects/{proj-id}/global/networks/{network}
    • compute/{version}/projects/{proj-##}/global/networks/{network}
    • projects/{proj-id}/global/networks/{network}
    • projects/{proj-##}/global/networks/{network}
    • global/networks/{network}
    • {network}

    如需了解详情,请参阅创建和管理 VPC 网络

  2. 创建符合以下有效格式之一的子网:

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
    • projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}
    • regions/{region}/subnetworks/{subnetwork}
    • {subnetwork}

    如需了解详情,请参阅创建和管理 VPC 网络

  3. 创建 TPU,指定自定义网络和子网:

    gcloud

    如需使用 gcloud CLI 指定网络和子网,请将 --network--subnetwork 标志:

        $ gcloud compute tpus tpu-vm create TPU_NAME \
            --zone=us-central2-b \
            --accelerator-type=v4-8 \
            --version=TPU_SOFTWARE_VERSION
            --network=NETWORK
            --subnetwork=SUBNETWORK

    curl

    如需在 curl 调用中指定网络和子网,请将 networksubnetwork 字段添加到请求正文中:

        $ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
            runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
            network_config: {network: 'NETWORK', subnetwork: 'SUBNETWORK', enable_external_ips: true}, \
            shielded_instance_config: { enable_secure_boot: true }}" \
            https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

启用内部 IP 地址

创建 TPU 时,系统会默认为每个 TPU 虚拟机创建外部 IP 地址。

如果您想改为为 TPU 虚拟机创建内部 IP 地址,请在创建 TPU 时使用 --internal-ips 标志。

gcloud

如果您使用的是队列型资源,请执行以下操作:

gcloud compute tpus queued-resources create your-queued-resource-id \
  --node-id your-node-id \
  --project your-project \
  --zone us-central2-b \
  --accelerator-type v4-8 \
  --runtime-version tpu_software_version \
  --internal-ips

如果您使用的是 Create Node API:

$ gcloud compute tpus tpu-vm create TPU_NAME \
    --zone=us-central2-b \
    --accelerator-type=v4-8 \
    --version=tpu_software_version \
    --internal-ips

curl

在请求正文中将 enable_external_ips 字段设置为 false

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
    runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
    network_config: {enable_external_ips: false}, \
    shielded_instance_config: { enable_secure_boot: true }}" \
    https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

启用自定义 SSH 方法

如需使用 SSH 连接到 TPU,您需要启用外部 IP 地址 或者启用 专用 Google 访问通道(适用于 TPU 虚拟机所连接的子网。

启用专用 Google 访问通道

没有外部 IP 地址的 TPU 可以使用专用 Google 访问通道 访问 Google API 和服务。如需详细了解如何启用专用 Google 访问通道,请参阅配置专用 Google 访问通道

配置专用 Google 访问通道后,请使用 SSH

关联自定义服务账号

每个 TPU 虚拟机都有一个关联的服务账号,用于 。TPU 虚拟机使用此服务账号调用 Cloud TPU API 以及访问 Cloud Storage 和其他服务。默认情况下,您的 TPU VM 使用默认的 Compute Engine 服务账号

您必须在创建服务账号的同一个 Google Cloud 项目中 创建 TPU 虚拟机。用于 TPU 虚拟机的自定义服务账号必须具有 TPU 查看器角色,才能调用 Cloud TPU API。如果 TPU 虚拟机中运行的代码调用其他 Google Cloud 服务, 必须拥有访问这些服务所需的角色。

如需详细了解服务账号,请参阅服务账号

使用以下命令指定自定义服务账号。

gcloud

创建 TPU 时使用 --service-account 标志:

$ gcloud compute tpus tpu-vm create TPU_NAME \
    --zone=us-central2-b \
    --accelerator-type=TPU_TYPE \
    --version=tpu-vm-tf-2.17.0-pjrt \
    --service-account=SERVICE_ACCOUNT

curl

在请求正文中设置 service_account 字段:

$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \
    runtime_version:'tpu-vm-tf-2.17.0-pjrt', \
    network_config: {enable_external_ips: true}, \
    shielded_instance_config: { enable_secure_boot: true }}" \
    service_account: {email: 'SERVICE_ACCOUNT'} \
    https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME

启用自定义 SSH 方法

默认网络允许通过 SSH 访问所有 TPU 虚拟机。如果您 使用非默认网络,或者您更改了默认网络设置, 您需要通过添加防火墙规则来明确启用 SSH 访问权限:

$ gcloud compute tpus tpu-vm compute firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22