Connettere un nodo 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) che stai utilizzando. Per ulteriori informazioni sulle architetture TPU, consulta la pagina relativa all'architettura di sistema delle TPU.
Connetti una VM TPU a una rete VPC condivisa
Configura un progetto host VPC
Quando utilizzi l'architettura di VM TPU, devi concedere all'account di servizio TPU nel tuo progetto di servizio le autorizzazioni per gestire le risorse nel progetto host.
Per farlo, utilizza il ruolo "Agente VPC condiviso TPU" (roles/tpu.xpnAgent
). Esegui i comandi gcloud seguenti per concedere questa associazione dei ruoli.
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
Determinare innanzitutto i tipi di acceleratore e le versioni disponibili nella zona
gcloud compute tpus accelerator-types list --zone zone
gcloud compute tpus versions list --zone zone
Connetti una VM TPU a una rete VPC condivisa quando crei la tua TPU. 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
Per verificare che la VM TPU sia connessa al tuo VPC condiviso, utilizza 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 tua 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
Una volta terminata la VM TPU, assicurati di eliminarla.
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 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 progetto Cloud Platform.
gcloud services enable servicenetworking.googleapis.com
Alloca un intervallo di indirizzi riservati da utilizzare per Networking dei servizi. Il valore di
prefix-length
deve essere inferiore a 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 comando seguente 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
Connetti un nodo TPU a una rete VPC condivisa quando crei la TPU. Specifica il VPC condiviso utilizzando il tag --network
:
$ gcloud compute tpus execution-groups create \
--name=tpu-name \
--zone=zone \
--tf-version=2.11.0 \
--machine-type=n1-standard-1 \
--accelerator-type=v3-8 \
--network=network-name
Recuperare informazioni su un nodo TPU specifico
$ 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
Una volta completato il nodo TPU, assicurati di eliminarlo.
$ gcloud compute tpus execution-groups delete tpu-name \
--zone=zone
### Elimina il peering VPC
Puoi disconnettere una connessione in peering utilizzando l'API Compute Networking.
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
Eliminare un peering VPC.
$ gcloud compute networks peerings delete peering-name --network=network-name