配置 Cloud TPU 的网络和访问权限
本页面介绍了如何为以下对象设置自定义网络和访问配置: 包括:
- 指定自定义网络和子网
- 指定内部 IP 地址
- 启用对 TPU 的 SSH 访问
- 将自定义服务账号附加到 TPU
- 启用自定义 SSH 方法
前提条件
在运行这些步骤之前,您必须安装 Google Cloud CLI、创建 Google Cloud 项目并启用 Cloud TPU API。如需相关说明, 请参阅设置 Cloud TPU 环境。
指定自定义网络和子网
您可以选择指定要用于 TPU 的网络和子网。如果
网络未指定,TPU 将位于 default
网络中。子网需要与 TPU 运行的可用区位于同一区域。
创建符合以下有效格式之一的网络:
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 网络。
创建符合以下有效格式之一的子网:
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 网络。
创建 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
调用中指定网络和子网,请将network
和subnetwork
字段添加到请求正文中:$ 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