Configura la rete e l'accesso alla tua Cloud TPU

Questa pagina descrive come configurare reti e accessi personalizzati per la tua Cloud TPU, tra cui:

  • Specifica di una rete e una subnet personalizzate
  • Specifica degli indirizzi IP esterni e interni
  • Attivazione 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 Google Cloud progetto e abilitare l'API Cloud TPU. Per le istruzioni, consulta Configurare l'ambiente Cloud TPU.

Specifica 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 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 scoprire di più, consulta Creare e gestire reti VPC.

  2. Crea una sottorete 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 scoprire di più, consulta Creare e gestire reti VPC.

  3. Crea una VM TPU specificando la rete e la subnet personalizzate:

    gcloud

    Per specificare la rete e la subnet utilizzando l'interfaccia a riga di comando 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 sottorete 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, per impostazione predefinita vengono creati indirizzi IP esterni 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 loro VM TPU solo agli indirizzi IP interni per alcuni motivi principali:

Sicurezza avanzata: 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. Questo è particolarmente importante quando si utilizzano dati sensibili o quando si vuole limitare l'accesso alle TPU a utenti o sistemi specifici all'interno della rete.

Risparmio sui costi: utilizzando indirizzi IP interni, puoi evitare i costi associati agli indirizzi IP esterni, che possono essere significativi per un numero elevato di VM TPU.

Migliore rendimento della rete: gli IP interni possono migliorare le prestazioni della rete perché il traffico rimane all'interno della rete di Google, evitando il sovraccarico del routing tramite la rete internet pubblica. Questo è particolarmente importante per i carichi di lavoro di machine learning su larga scala che richiedono una comunicazione ad alta larghezza di banda tra le VM TPU.

Attivare i metodi SSH personalizzati

Per connetterti alle TPU utilizzando SSH, devi attivare gli indirizzi IP esterni per le TPU o attivare l'accesso privato Google per la sottorete 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 alle API e ai servizi Google. Per ulteriori informazioni sull'attivazione dell'accesso privato Google, consulta Configurare l'accesso privato Google.

Dopo aver configurato l'accesso privato a Google, connettiti alla VM tramite SSH.

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

L'account di servizio deve essere definito nello stesso Google Cloud progetto in cui crei la VM TPU. Gli account di servizio personalizzati utilizzati per le VM TPU devono avere il ruolo Visualizzatore TPU per chiamare l'API Cloud TPU. Se il codice in esecuzione nella VM TPU chiama altri Google Cloud servizi, deve avere i ruoli necessari per accedere a questi servizi.

Per ulteriori informazioni sui service account, consulta Service account.

Utilizza i seguenti comandi per specificare un account di servizio personalizzato.

gcloud

Utilizza il flag --service-account durante la creazione di 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 i metodi SSH personalizzati

La rete predefinita consente l'accesso SSH a tutte le VM TPU. Se utilizzi una rete diversa da quella predefinita o se 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

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 tue risorse Cloud TPU e di controllare il movimento dei dati oltre il confine del perimetro. Per scoprire di più sui Controlli di servizio VPC, consulta Panoramica dei Controlli di servizio VPC. Per scoprire le limitazioni nell'utilizzo di Cloud TPU con i Controlli di servizio VPC, consulta Prodotti supportati e limitazioni.