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.

  1. 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.

  2. 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.

  3. 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 --network e --subnetwork alla 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 campi network e subnetwork 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 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.