Configura la rete e l'accesso alla tua Cloud TPU
Questa pagina descrive come configurare le impostazioni di rete e di accesso personalizzate per Cloud TPU, tra cui:
- Specifica di una rete e di una subnet personalizzate
- Specifica degli indirizzi IP esterni e interni
- Abilitazione dell'accesso SSH alle TPU
- Collegamento di un account di servizio personalizzato alla TPU
- Attivazione di metodi SSH personalizzati
- Utilizzo dei Controlli di servizio VPC
Prerequisiti
Prima di eseguire queste procedure, devi installare Google Cloud CLI, creare un progetto Google Cloud e abilitare l'API Cloud TPU. Per istruzioni, vedi Configurare l'ambiente Cloud TPU.
Specifica una rete e una subnet personalizzate
Puoi specificare facoltativamente 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 viene eseguita 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 Crea e gestisci le reti VPC.
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 Crea e gestisci le reti VPC.
Crea una VM TPU, specificando la rete e la subnet personalizzate:
gcloud
Per specificare la rete e la subnet utilizzando la CLI
gcloud, 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 chiamata
curl, aggiungi i campinetworkesubnetworkal 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 creati 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 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 agli indirizzi IP interni solo per alcuni motivi principali:
Maggiore sicurezza: gli 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 si lavora con dati sensibili o quando vuoi limitare l'accesso alle tue 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.
Migliori prestazioni di rete: gli 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 carichi di lavoro di machine learning su larga scala che richiedono comunicazioni a larghezza di banda elevata tra le VM TPU.
Attivare 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.
Abilita l'accesso privato Google
Le TPU che non hanno indirizzi IP esterni possono utilizzare l'accesso privato Google per accedere ai servizi e alle API di Google. Per saperne di più sull'attivazione dell'accesso privato Google, consulta Configura l'accesso privato Google.
Dopo aver configurato l'accesso privato Google, connettiti alla VM tramite SSH.
Allegare 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 tua VM TPU utilizza l'account di servizio predefinito di Compute Engine.
Il account di servizio deve essere definito nello stesso progetto Google Cloud in cui crei la VM TPU. I service account personalizzati utilizzati per le VM TPU devono disporre del ruolo Visualizzatore TPU per chiamare l'API Cloud TPU. Se il codice in esecuzione nella tua VM TPU chiama altri servizi Google Cloud , deve disporre dei ruoli necessari per accedere a questi servizi.
Per ulteriori informazioni sui service account, consulta Service account.
Utilizza questi 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
Attivare 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 di rete predefinite, devi attivare esplicitamente l'accesso SSH aggiungendo una regola firewall:
$ gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
Integrazione con i Controlli di servizio VPC
I Controlli di servizio VPC per Cloud TPU ti consentono di definire perimetri di sicurezza attorno alle tue risorse Cloud TPU e controllare il movimento dei dati oltre il confine del perimetro. Per scoprire 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.