配置 Cloud TPU 的网络和访问权限
本页面介绍了如何为以下对象设置自定义网络和访问配置: 包括:
- 指定自定义网络和子网
- 启用对 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
为您的网络和启用自定义 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