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

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

  • 指定自定义网络和子网
  • 启用对 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
    
  4. 为您的网络和启用自定义 SSH 方法 子网

启用对 TPU 的 SSH 访问

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

启用外部 IP 地址

创建 TPU 时, 默认情况下会创建 IP 地址。

如果您不想为 TPU 创建外部 IP 地址,请启用内部 IP:

gcloud

创建 TPU 时使用 --internal-ips 标志:

$ 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

启用专用 Google 访问通道

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

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

附加自定义服务账号

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

您必须在创建服务账号的同一个 Google Cloud 项目中 创建 TPU 虚拟机。用于 TPU 虚拟机的自定义服务账号必须具有 TPU Viewer 角色来调用 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 方法

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

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