Configurare la rete e l'accesso a un'istanza TPU
Questa pagina descrive come configurare le impostazioni di rete e di accesso personalizzate per un'istanza 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 Compute Engine. Per istruzioni, vedi Configurare un Google Cloud progetto per le TPU.
Specificare una rete e una subnet personalizzate
Quando crei un'istanza VM TPU o un template di istanza, puoi specificare facoltativamente la rete e la subnet da utilizzare per la TPU. Se non specifichi una rete, 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 e una subnet seguendo le istruzioni per creare una rete VPC.
Crea una VM TPU, specificando la rete e la subnet personalizzate:
Per specificare la rete e la subnet, includi i flag di rete mostrati in questo esempio quando esegui il
gcloud compute instances createcomando:gcloud compute instances create TPU_NAME \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --zone=ZONE \ --maintenance-policy=TERMINATE \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --stack-type=STACK_TYPE \ --private-network-ip=INTERNAL_IPV4_ADDRESS \ --address=EXTERNAL_IPV4_ADDRESSSostituisci i seguenti segnaposto:
- TPU_NAME: un nome per la VM TPU.
- MACHINE_TYPE: il tipo di macchina
per la VM TPU (ad esempio
ct6e-standard-8t). - IMAGE_FAMILY: la famiglia di immagini del sistema operativo
per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag
--image. Per saperne di più sulle immagini del sistema operativo, consulta Immagini del sistema operativo. - IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo è
ubuntu-os-accelerator-images. - ZONE: la zona per la
VM TPU (ad esempio
us-central1-b). - NETWORK_NAME: (facoltativo) il nome della rete. Se specifichi una rete, devi specificare una subnet che deve appartenere alla stessa rete. Se non specifichi una rete, Compute Engine la deduce dalla subnet specificata.
SUBNET_NAME: il nome della subnet da utilizzare con l' istanza.
Per visualizzare un elenco di subnet nella rete, utilizza il comando.
gcloud compute networks subnets listSTACK_TYPE: (facoltativo) il tipo di stack di rete per l'interfaccia di rete.
STACK_TYPEdeve essere uno dei seguenti valori:IPV4_ONLY,IPV4_IPV6, oIPV6_ONLY(anteprima). Il valore predefinito èIPV4_ONLY.INTERNAL_IPV4_ADDRESS: (facoltativo) l'indirizzo IPv4 interno che vuoi che l'istanza di computing utilizzi nella subnet di destinazione. Ometti questo flag se non hai bisogno di un indirizzo IP specifico.
Per specificare un indirizzo IPv6 interno, utilizza il flag
--internal-ipv6-address.EXTERNAL_IPV4_ADDRESS: (facoltativo) l'indirizzo IPv4 esterno statico da utilizzare con l'interfaccia di rete. Sostituisci EXTERNAL_IPV4_ADDRESS con uno dei seguenti valori:
- Un indirizzo IPv4 valido della subnet specificata. Devi aver prenotato in precedenza un indirizzo IPv4 esterno address.
''(una stringa vuota) per utilizzare un indirizzo IP esterno temporaneo.
Se non vuoi che la VM abbia un indirizzo IP esterno, sostituisci il flag
--addresscon il flag--no-address.Per specificare un indirizzo IPv6 esterno, utilizza il flag
--external-ipv6-address.
Informazioni sugli indirizzi IP esterni e interni
Quando crei istanze VM TPU, queste hanno sempre indirizzi IP interni.
Se crei le istanze TPU utilizzando gcloud CLI, gli indirizzi IP esterni vengono generati per impostazione predefinita. Se le crei tramite le API REST Compute Engine (compute.googleapis.com), per impostazione predefinita non viene assegnato alcun indirizzo IP esterno. Puoi modificare il comportamento predefinito in entrambi i casi.
Ecco alcuni motivi per limitare le VM TPU all'utilizzo di indirizzi IP interni:
- 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. Questo è particolarmente importante quando lavori con dati sensibili o quando vuoi limitare l'accesso alle VM 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. Questo è particolarmente importante per i carichi di lavoro di machine learning su larga scala che richiedono una comunicazione a larghezza di banda elevata tra le VM TPU.
Creare un'istanza VM TPU senza indirizzo IP esterno
Se vuoi creare un'istanza VM TPU
senza indirizzo IP esterno, utilizza il flag --no-address quando esegui il
gcloud compute instances create
comando:
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE \
--network=NETWORK_NAME \
--subnet=SUBNET_NAME \
--stack-type=STACK_TYPE \
--private-network-ip=INTERNAL_IPV4_ADDRESS \
--no-address
Sostituisci i seguenti segnaposto:
- TPU_NAME: un nome per la VM TPU.
- MACHINE_TYPE: il tipo di macchina
per la VM TPU (ad esempio
ct6e-standard-8t). - IMAGE_FAMILY: la famiglia di immagini del sistema operativo
per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag
--image. Per saperne di più sulle immagini del sistema operativo, consulta Immagini del sistema operativo. - IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo.
Per le immagini TPU, questo è
ubuntu-os-accelerator-images. - ZONE: la zona
per la VM TPU (ad esempio
us-central1-b). - NETWORK_NAME: (facoltativo) il nome della rete. Se specifichi una rete, devi specificare una subnet che deve appartenere alla stessa rete. Se non specifichi una rete, Compute Engine la deduce dalla subnet specificata.
SUBNET_NAME: il nome della subnet da utilizzare con l'istanza.
Per visualizzare un elenco di subnet nella rete, utilizza il
gcloud compute networks subnets listcomando.STACK_TYPE: (facoltativo) il tipo di stack di rete per l'interfaccia di rete.
STACK_TYPEdeve essere uno dei seguenti valori:IPV4_ONLY,IPV4_IPV6oIPV6_ONLY(anteprima). Il valore predefinito èIPV4_ONLY.INTERNAL_IPV4_ADDRESS: (facoltativo) l'indirizzo IPv4 interno che vuoi che l'istanza di computing utilizzi nella subnet di destinazione. Ometti questo flag se non hai bisogno di un indirizzo IP specifico.
Per specificare un indirizzo IPv6 interno, utilizza il flag
--internal-ipv6-address.
Creare un'istanza VM TPU con un indirizzo IP esterno
Quando crei un'istanza VM TPU utilizzando gcloud CLI, l'istanza riceve un indirizzo IP esterno temporaneo per impostazione predefinita.
Per creare una VM TPU con un indirizzo IP esterno utilizzando l'API REST, invia una
POST richiesta al instances.insert
metodo e includi il
accessConfigs campo nell'array networkInterfaces nel corpo della richiesta. Se il corpo della richiesta non specifica il campo accessConfigs, l'istanza non avrà accesso a internet esterno.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"machineType":"zones/ZONE/machineTypes/MACHINE_TYPE",
"name":"TPU_NAME",
"disks":[
{
"initializeParams":{
"sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
},
"boot":true
}
],
"networkInterfaces":[
{
"network":"global/networks/NETWORK_NAME",
"subnetwork":"regions/REGION/subnetworks/SUBNET_NAME",
"stackType":"STACK_TYPE",
"accessConfigs":[
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT"
}
]
}
],
"scheduling": {
"onHostMaintenance": "TERMINATE"
}
}
Sostituisci i seguenti segnaposto:
- PROJECT_ID: l'ID del progetto in cui vuoi creare la VM TPU.
- ZONE: la zona per la TPU
VM (ad esempio
us-central1-b). - MACHINE_TYPE: il tipo di macchina
per la VM TPU (ad esempio
ct6e-standard-8t). - TPU_NAME: un nome per la VM TPU.
- IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo è
ubuntu-os-accelerator-images. IMAGE_FAMILY: la famiglia di immagini del sistema operativo per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, sostituisci l' intero valore
"sourceImage"con il nome della versione dell'immagine nel seguente formato:projects/IMAGE_PROJECT/global/images/IMAGE_NAME.Per saperne di più sulle immagini del sistema operativo, consulta Immagini del sistema operativo.
NETWORK_NAME: (facoltativo) il nome della rete. Se specifichi una rete, devi specificare una subnet che deve appartenere alla stessa rete. Se non specifichi una rete, Compute Engine la deduce dalla subnet specificata.
REGION: la regione della subnet.
SUBNET_NAME: il nome della subnet da utilizzare con l'istanza.
Per visualizzare un elenco di subnet nella rete, utilizza il
gcloud compute networks subnets listcomando.STACK_TYPE: (facoltativo) il tipo di stack per l'interfaccia di rete.
STACK_TYPEdeve essere uno dei seguenti valori:IPV4_ONLY,IPV4_IPV6oIPV6_ONLY(anteprima). Il valore predefinito èIPV4_ONLY.
Se hai già prenotato un indirizzo IP esterno statico, puoi assegnarlo a
l'istanza al momento della creazione utilizzando il --address
flag con l'indirizzo IP statico o il --network-interface
flag per
impostare la configurazione di rete dettagliata. Per saperne di più, consulta Configurare
indirizzi IP esterni
statici.
Abilitare l'accesso SSH a un'istanza VM TPU
Per abilitare l'accesso SSH a un'istanza VM TPU:
- L'istanza TPU deve essere raggiungibile tramite un indirizzo IP esterno o l'accesso privato Google.
- Se crei l'istanza TPU utilizzando gcloud CLI, l'istanza riceve un indirizzo IP esterno temporaneo per impostazione predefinita. Se crei l'istanza TPU utilizzando l'API REST, devi specificare che l'istanza deve avere un indirizzo IP esterno. Per saperne di più, consulta Creare un' istanza VM TPU con un indirizzo IP esterno.
- Se le tue istanze TPU non hanno indirizzi IP esterni, puoi configurare l'accesso privato Google. Per saperne di più, consulta Abilitare l'accesso privato Google.
- La rete utilizzata dall'istanza TPU deve consentire il traffico SSH. La rete predefinita consente automaticamente il traffico SSH. Se utilizzi una rete personalizzata o modifichi le impostazioni della rete predefinite, devi abilitare esplicitamente SSH sulla rete.
Abilitare l'accesso privato Google
Le TPU senza 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.
Abilitare il traffico SSH sulla rete
La rete predefinita consente l'accesso SSH a tutte le VM TPU. Se utilizzi una rete personalizzata 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
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 Compute Engine e accedere a Cloud Storage e ad altri servizi. Per impostazione predefinita, la VM TPU utilizza il service account Compute Engine predefinito.
Per saperne di più sui service account, consulta Service account.
Per specificare un account di servizio personalizzato quando crei un'istanza VM TPU, utilizza il
gcloud compute instances create
comando e fornisci l'email dell'account del service
account e l'ambito di accesso cloud-platform all'istanza VM:
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--zone=ZONE \
--maintenance-policy=TERMINATE \
--service-account=SERVICE_ACCOUNT_EMAIL \
--scopes=https://www.googleapis.com/auth/cloud-platform
Sostituisci quanto segue:
- TPU_NAME: un nome per la VM TPU.
- MACHINE_TYPE: il tipo di macchina
per la VM TPU (ad esempio
ct6e-standard-8t). - IMAGE_FAMILY: la famiglia di immagini del sistema operativo
per la VM TPU. Se vuoi installare una versione specifica del sistema operativo, utilizza il flag
--image. Per saperne di più sulle immagini del sistema operativo, consulta Immagini del sistema operativo. - IMAGE_PROJECT: il progetto che contiene l'immagine del sistema operativo. Per le immagini TPU, questo è
ubuntu-os-accelerator-images. - ZONE: la zona per la VM TPU
(ad esempio
us-central1-b). - SERVICE_ACCOUNT_EMAIL: l'indirizzo email del
account di servizio che hai creato. Ad esempio:
my-sa-123@my-project-123.iam.gserviceaccount.com. Per visualizzare l'indirizzo email, consulta Creazione dell'elenco dei service account.
Per utilizzare un account di servizio in un progetto diverso da quello in cui crei la VM TPU, segui le istruzioni riportate in Utilizzare un service account tra progetti.
Eseguire l'integrazione con i Controlli di servizio VPC
Utilizza i Controlli di servizio VPC per definire i perimetri di sicurezza intorno alle risorse TPU e controllare lo spostamento dei dati oltre il limite del perimetro. Per saperne di più, consulta Panoramica dei Controlli di servizio VPC. Per scoprire di più sulle limitazioni dell'utilizzo delle TPU con i Controlli di servizio VPC, consulta Prodotti supportati e limitazioni.