Connetti una TPU a una rete VPC condivisa
La modalità di connessione di un host TPU a un VPC condiviso dipende dall'architettura TPU (VM TPU o nodo TPU) utilizzata. Per ulteriori informazioni sulle architetture TPU, consulta Architettura del sistema TPU.
Connetti una VM TPU a una rete VPC condivisa
Configura un progetto host VPC
Quando utilizzi l'architettura della VM TPU, devi concedere all'account di servizio TPU nel progetto di servizio le autorizzazioni per gestire le risorse nel progetto host.
A tale scopo, devi utilizzare il ruolo "Agente VPC condiviso TPU" (roles/tpu.xpnAgent
). Esegui i seguenti comandi gcloud per concedere l'associazione di questo ruolo.
gcloud projects add-iam-policy-binding host-project-id \ --member=serviceAccount:service-your-service-project-number@gcp-sa-tpu.iam.gserviceaccount.com \ --role=roles/tpu.xpnAgent
Crea una VM TPU connessa a una rete VPC condivisa
Determina prima di tutto quali tipi e versioni di acceleratori sono disponibili nella zona
gcloud compute tpus accelerator-types list --zone zone
gcloud compute tpus versions list --zone zone
Quando crei la TPU, connetti una VM TPU a una rete VPC condivisa. Specifica il VPC condiviso utilizzando il tag --network
:
gcloud compute tpus tpu-vm create tpu-name \ --zone zone \ --accelerator-type accelerator-type \ --network projects/host-project-id/global/networks/host-network \ --version runtime-version \ --project your-service-project-id
Puoi verificare che la VM TPU sia connessa al VPC condiviso utilizzando il comando gcloud compute tpus tpu-vm describe
:
$ gcloud compute tpus tpu-vm describe tpu-name --zone zone
La risposta include la rete a cui è collegata la VM TPU:
acceleratorType: v3-8 apiVersion: V2 cidrBlock: 10.128.0.0/20 createTime: '2022-06-17T21:32:13.859274143Z' health: HEALTHY id: '0000000000000000000' name: projects/my-project/locations/us-central1-b/nodes/my-tpu networkConfig: enableExternalIps: true network: projects/my-project/global/networks/default subnetwork: projects/my-project/regions/us-central1/subnetworks/default networkEndpoints: - accessConfig: externalIp: 000.000.000.000 ipAddress: 10.128.0.104 port: 8470 runtimeVersion: tpu-vm-tf-2.8.0 schedulingConfig: {} serviceAccount: email: 00000000000-compute@developer.gserviceaccount.com scope: - https://www.googleapis.com/auth/devstorage.read_write - https://www.googleapis.com/auth/logging.write - https://www.googleapis.com/auth/service.management - https://www.googleapis.com/auth/servicecontrol - https://www.googleapis.com/auth/cloud-platform - https://www.googleapis.com/auth/pubsub shieldedInstanceConfig: {} state: READY
Elimina la VM TPU
Al termine dell'operazione, assicurati di eliminare la VM TPU.
gcloud compute tpus tpu-vm delete tpu-name \ --zone zone \
Connessione di un nodo TPU a un VPC condiviso
Configura l'accesso privato ai servizi
Prima di utilizzare i nodi TPU con i VPC condivisi, devi stabilire una connessione di accesso privato ai servizi.
Abilita l'API Service Networking utilizzando il seguente comando Google Cloud CLI. Questa operazione deve essere eseguita una sola volta per ogni progetto della piattaforma Cloud.
gcloud services enable servicenetworking.googleapis.com
Assegna un intervallo di indirizzi riservati per l'utilizzo da parte di Service Networking. Il valore
prefix-length
deve essere massimo 24. Ad esempio:gcloud compute addresses create sn-range-1 --global \ --addresses=10.110.0.0 \ --prefix-length=16 \ --purpose=VPC_PEERING \ --network=network-name
Stabilisci una connessione di accesso privato ai servizi.
$ gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \ --ranges=sn-range-1 \ --network=network-name
Verifica che il peering VPC sia stato creato. Il seguente comando elenca tutti i peering VPC per la rete specificata.
gcloud services vpc-peerings list --network=network-name
Connetti un nodo TPU a una rete VPC condivisa
Quando crei la TPU, connetti un nodo TPU a una rete VPC condivisa. Specifica il VPC condiviso utilizzando il tag --network
:
$ gcloud compute tpus execution-groups create \
--name=tpu-name \
--zone=zone \
--tf-version=2.12.0 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8 \
--network=network-name
Recuperare informazioni su uno specifico nodo TPU
$ gcloud compute tpus describe tpu-name --zone zone
La risposta contiene le seguenti informazioni:
acceleratorType: v3-8 apiVersion: V1 cidrBlock: 00.0.000.000/29 createTime: '2022-11-30T18:59:20.655858097Z' health: HEALTHY ipAddress: 00.000.0.000 name: projects/ml-writers/locations/us-central1-a/nodes/mikegre-vcp network: global/networks/mikegre-vpc networkEndpoints: - ipAddress: 00.0.000.000 port: 8470 port: '8470' schedulingConfig: {} serviceAccount: service-00000000000@cloud-tpu.iam.gserviceaccount.com state: READY tensorflowVersion: 2.10.0
Elimina il nodo TPU
Al termine, assicurati di eliminare il nodo TPU.
$ gcloud compute tpus execution-groups delete tpu-name \
--zone=zone
### Elimina il peering VPC
Una connessione in peering può essere disconnessa utilizzando l'API Compute Network.
Queste chiamate devono essere effettuate nei progetti host del VPC condiviso.
1. Elenca tutti i peering VPC per trovare il nome del peering da eliminare.
$ gcloud compute networks peerings list --network=network-name
Elimina un peering VPC.
$ gcloud compute networks peerings delete peering-name --network=network-name