Configurare la rete e l'accesso a Cloud TPU
Questa pagina descrive come configurare le impostazioni di rete e di accesso personalizzate per Cloud TPU, tra cui:
- Specificare una rete e una subnet personalizzate
- Specificare indirizzi IP esterni e interni
- Abilitare l'accesso SSH alle TPU
- Collegare un account di servizio personalizzato alla TPU
- Abilitare metodi SSH personalizzati
- Utilizzare i Controlli di servizio VPC
Prerequisiti
Prima di eseguire queste procedure, devi installare Google Cloud CLI, creare un Google Cloud progetto e abilitare l'API Cloud TPU. Per istruzioni, consulta Configurare l'ambiente Cloud TPU.
Specificare una rete e una subnet personalizzate
Facoltativamente, puoi specificare la rete e la subnet da utilizzare per la TPU. Se la rete non è specificata, la TPU si troverà nella rete default. La subnet deve trovarsi nella stessa regione della zona in cui è in esecuzione la TPU.
Crea una rete che corrisponda a uno dei seguenti formati validi:
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}
Per saperne di più, consulta Creare e gestire le reti VPC networks.
Crea una subnet che corrisponda a uno dei seguenti formati validi:
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}
Per saperne di più, consulta Creare e gestire le reti VPC networks.
Crea una VM TPU, specificando la rete e la subnet personalizzate:
gcloud
Per specificare la rete e la subnet utilizzando la
gcloudCLI, aggiungi i flag--networke--subnetworkalla richiesta di creazione:$ 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
Per specificare la rete e la subnet in una
curlchiamata, aggiungi inetworkesubnetworkcampi al corpo della richiesta:$ 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.1-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
Informazioni sugli indirizzi IP esterni e interni
Quando crei VM TPU, queste vengono sempre fornite automaticamente con indirizzi IP interni. Se le VM TPU vengono create tramite gcloud CLI, gli indirizzi IP esterni vengono generati per impostazione predefinita. Se vengono create tramite le API REST Cloud TPU (tpu.googleapis.com), per impostazione predefinita non viene assegnato alcun indirizzo IP esterno. Puoi modificare il comportamento predefinito in entrambi i casi.
Indirizzi IP esterni
Quando crei una TPU utilizzando
gcloud, gli indirizzi IP esterni vengono creati per impostazione predefinita per ogni VM TPU.
Se vuoi creare una VM TPU senza indirizzo IP esterno, utilizza il flag --internal-ips mostrato negli esempi seguenti quando crei la VM TPU.
gcloud
Se utilizzi risorse in coda:
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
Se utilizzi l'API Create Node:
$ gcloud compute tpus tpu-vm create TPU_NAME \ --zone=us-central2-b \ --accelerator-type=v4-8 \ --version=tpu_software_version \ --internal-ips
curl
Imposta il campo enable_external_ips su false nel corpo della richiesta:
$ 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.1-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
Per creare una VM TPU con un indirizzo IP esterno quando utilizzi l'API REST (tpu.googleapis.com), imposta il campo networkconfig.enable_external_ips nella richiesta su true.
Indirizzi IP interni
Le VM TPU hanno sempre indirizzi IP interni. Gli utenti di Cloud TPU potrebbero voler limitare le proprie VM TPU solo agli indirizzi IP interni per alcuni motivi principali:
Maggiore sicurezza: gli indirizzi IP interni sono accessibili solo alle risorse all'interno della stessa rete VPC, il che può migliorare la sicurezza limitando l'accesso esterno alle VM TPU. Ciò è particolarmente importante quando lavori con dati sensibili o quando vuoi limitare l'accesso alle TPU a utenti o sistemi specifici all'interno della tua rete.
Risparmio sui costi: utilizzando gli indirizzi IP interni, puoi evitare i costi associati agli indirizzi IP esterni, che possono essere significativi per un numero elevato di VM TPU.
Miglioramento delle prestazioni di rete: gli indirizzi IP interni possono migliorare le prestazioni di rete perché il traffico rimane all'interno della rete di Google, evitando l'overhead del routing tramite internet pubblico. Ciò è particolarmente importante per i workload di machine learning su larga scala che richiedono una comunicazione a larghezza di banda elevata tra le VM TPU.
Abilitare metodi SSH personalizzati
Per connetterti alle TPU utilizzando SSH, devi abilitare gli indirizzi IP esterni per le TPU o abilitare l'accesso privato Google per la subnet a cui sono connesse le VM TPU.
Abilitare l'accesso privato Google
Le TPU che non hanno indirizzi IP esterni possono utilizzare l'accesso privato Google per accedere alle API e ai servizi di Google. Per saperne di più sull'abilitazione dell' accesso privato Google, consulta Configurare l' accesso privato Google.
Dopo aver configurato l'accesso privato Google, connettiti alla VM utilizzando SSH.
Collegare un account di servizio personalizzato
Ogni VM TPU ha un account di servizio associato che utilizza per effettuare richieste API per tuo conto. Le VM TPU utilizzano questo account di servizio per chiamare le API Cloud TPU e accedere a Cloud Storage e ad altri servizi. Per impostazione predefinita, la VM TPU utilizza l'account di servizio Compute Engine predefinito.
Il account di servizio deve essere definito nello stesso Google Cloud progetto in cui crei la VM TPU. I service account personalizzati utilizzati per le VM TPU devono avere il ruolo TPU Visualizzatore per chiamare l'API Cloud TPU. Se il codice in esecuzione nella VM TPU chiama altri Google Cloud servizi, deve disporre dei ruoli necessari per accedere a questi servizi.
Per saperne di più sui service account, consulta Service account.
Utilizza i seguenti comandi per specificare un account di servizio personalizzato.
gcloud
Utilizza il flag --service-account quando crei una TPU:
$ gcloud compute tpus tpu-vm create TPU_NAME \ --zone=us-central2-b \ --accelerator-type=TPU_TYPE \ --version=tpu-vm-tf-2.17.1-pjrt \ --service-account=SERVICE_ACCOUNT
curl
Imposta il campo service_account nel corpo della richiesta:
$ 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.1-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
Abilitare metodi SSH personalizzati
La rete predefinita consente l'accesso SSH a tutte le VM TPU. Se utilizzi una rete diversa da quella predefinita o modifichi le impostazioni della rete predefinite, devi abilitare esplicitamente l'accesso SSH aggiungendo una regola firewall:
$ gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
Eseguire l'integrazione con i Controlli di servizio VPC
I Controlli di servizio VPC di Cloud TPU ti consentono di definire perimetri di sicurezza attorno alle risorse Cloud TPU e controllare lo spostamento dei dati oltre il limite del perimetro. Per saperne di più sui Controlli di servizio VPC, consulta la panoramica dei Controlli di servizio VPC. Per scoprire le limitazioni dell'utilizzo di Cloud TPU con i Controlli di servizio VPC, consulta Prodotti supportati e limitazioni.