Puoi configurare i job di AI Platform Training in modo che eseguino il peering con il virtual private cloud (VPC). In questo modo, i job di addestramento possono accedere agli indirizzi IP privati all'interno delle reti Google Cloud o on-premise. L'utilizzo dell'IP privato per connettersi ai job di addestramento offre maggiore sicurezza di rete e minore latenza di rete rispetto all'utilizzo dell'IP pubblico.
Questa guida mostra come configurare l'IP privato con AI Platform Training utilizzando il peering di rete VPC per eseguire il peering della tua rete con i job di AI Platform Training. Questa guida è consigliata per gli amministratori di reti che hanno già familiarità con i concetti di networking di Google Cloud.
Panoramica
Questa guida illustra le seguenti attività:
- Configura l'accesso privato ai servizi per il VPC. In questo modo viene stabilita una connessione in peering tra il tuo VPC e la rete VPC condivisa di Google.
- Prendi in considerazione l'intervallo IP da prenotare per AI Platform Training.
- Se applicabile, esporta le route personalizzate in modo che AI Platform Training possa importarle.
- Verifica lo stato delle connessioni di peering.
- Invia un job di addestramento sulla tua rete.
- Controlla se sono presenti job di addestramento attivi su una rete prima di inviare job su un'altra rete.
- Verifica che un job di addestramento possa accedere agli IP privati della tua rete.
Prima di iniziare
- Seleziona una VPC con cui vuoi creare un peering con i job di AI Platform Training.
- Seleziona o crea un progetto Google Cloud per eseguire job di addestramento con AI Platform Training.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API, AI Platform Training & Prediction, and the Service Networking APIs.
- Facoltativamente, puoi utilizzare VPC condiviso. Se utilizzi un VPC condiviso, di solito esegui i job di addestramento in un progetto Google Cloud distinto dal progetto host del VPC. Abilita l'API Compute Engine e le API Service Networking in entrambi i progetti. Scopri come eseguire il provisioning di un VPC condiviso.
- Installa gcloud CLI se vuoi eseguire gli esempi della riga di comando
gcloud
in questa guida.
Autorizzazioni
Se non sei un proprietario o un editor del progetto, assicurati di disporre del ruolo Amministratore della rete Compute, che include le autorizzazioni necessarie per gestire le risorse di rete.
Per eseguire job su AI Platform Training, devi disporre delle autorizzazioni incluse nei ruoli Amministratore di AI Platform Training o Sviluppatore di AI Platform Training. Scopri di più sui ruoli IAM di AI Platform Training.
Peering con una rete on-premise
Per il peering di rete VPC con una rete on-premise, sono necessari ulteriori passaggi:
- Collega la tua rete on-premise alla tua VPC. Puoi utilizzare un tunnel VPN o un interconnessione.
- Configura le route personalizzate dalla VPC alla tua rete on-premise.
- Esporta le route personalizzate in modo che AI Platform Training possa importarle.
Configurare l'accesso privato ai servizi per il VPC
Quando configuri l'accesso privato ai servizi, stabilisci una connessione privata tra la tua rete e una rete di proprietà di Google o di un servizio di terze parti (producer di servizi). In questo caso, AI Platform Training è un producer di servizi. Per configurare l'accesso ai servizi privati, prendi in prenotazione un intervallo IP per i producer di servizi e poi crea una connessione di peering con AI Platform Training.
Se hai già configurato un VPC con accesso privato ai servizi e vuoi utilizzarlo per il peering con il tuo job di addestramento, vai all'esportazione delle route personalizzate.
- Imposta le variabili di ambiente per l'ID progetto, il nome della regione, il nome dell'intervallo riservato e il nome della rete.
- Se utilizzi la Rete VPC condiviso, utilizza l'ID progetto del progetto host VPC. In caso contrario, utilizza l'ID del progetto Google Cloud che utilizzi per eseguire i job di addestramento.
- Seleziona una regione idonea da utilizzare con AI Platform Training.
- Abilita le API richieste. Se utilizzi un VPC condiviso, assicurati di attivare le API nel progetto host VPC e nel progetto Google Cloud che utilizzi per eseguire i job di addestramento.
- Imposta un intervallo riservato utilizzando
gcloud compute addresses create
. Stabilisci una connessione in peering tra il progetto host VPC e Service Networking di Google utilizzando
gcloud services vpc-peerings connect
.PROJECT_ID=YOUR_PROJECT_ID gcloud config set project $PROJECT_ID REGION=YOUR_REGION # This is for display only; you can name the range anything. PEERING_RANGE_NAME=google-reserved-range NETWORK=YOUR_NETWORK_NAME # NOTE: `prefix-length=16` means a CIDR block with mask /16 will be # reserved for use by Google services, such as AI Platform Training. gcloud compute addresses create $PEERING_RANGE_NAME \ --global \ --prefix-length=16 \ --description="peering range for Google service" \ --network=$NETWORK \ --purpose=VPC_PEERING # Create the VPC connection. gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK \ --ranges=$PEERING_RANGE_NAME \ --project=$PROJECT_ID
Scopri di più sull'accesso ai servizi privati.
Prenotazione di intervalli IP per AI Platform Training
Quando prenoti un intervallo IP per i produttori di servizi, questo intervallo può essere utilizzato sia da AI Platform Training che da altri servizi. Pertanto, se prevedi di collegare altri servizi allo stesso intervallo riservato, devi anche assicurarti che l'intervallo sia sufficientemente ampio da evitare l'esaurimento degli IP.
Puoi stimare in modo conservativo il numero di indirizzi utilizzati da ogni job di addestramento come segue:
nextPow2(32 * NUMBER_OF_POOLS * max(POOL_SIZE))
La tabella seguente mostra il numero massimo di job di addestramento paralleli che puoi eseguire con intervalli riservati da /16
a /19
, supponendo che l'intervallo sia utilizzato quasi esclusivamente da AI Platform Training.
Configurazione della macchina per il job di addestramento | Intervallo riservato | Numero massimo di job paralleli | |
---|---|---|---|
Fino a 8 nodi. Ad esempio: 6 worker, 1 master e 1 server di parametri. |
/16 | 63 | |
/17 | 31 | ||
/18 | 15 | ||
/19 | 7 | ||
Fino a 16 nodi. Ad esempio: 14 worker, 1 master e 1 server dei parametri. |
/16 | 31 | |
/17 | 15 | ||
/18 | 7 | ||
/19 | 3 | ||
Fino a 32 nodi. Ad esempio: 30 worker, 1 master e 1 server di parametri. |
/16 | 15 | |
/17 | 7 | ||
/18 | 3 | ||
/19 | 1 |
Scopri di più su come specificare i tipi di macchine per i job di addestramento.
Esporta route personalizzate
Se utilizzi route personalizzate, devi esportarle in modo che AI Platform Training possa importarle. Se non utilizzi route personalizzate, vai alla sezione su come inviare il job di addestramento.
Per esportare le route personalizzate, aggiorna la connessione in peering nella tua VPC. L'esportazione delle route personalizzate invia tutte le route statiche e dinamiche idonee che si trovano nella rete VPC, ad esempio le route per la rete on-premise, alle reti dei produttori di servizi (in questo caso AI Platform Training). In questo modo vengono stabilite le connessioni necessarie e i job di addestramento possono inviare nuovamente il traffico alla tua rete on-premise.
Scopri di più sulle connessioni private con le reti on-premise.
Console
- Vai alla pagina Paritetà di rete VPC nella console Google Cloud.
Vai alla pagina Peering di rete VPC - Seleziona la connessione di peering da aggiornare.
- Fai clic su Modifica.
- Seleziona Esporta route personalizzate.
gcloud
Trova il nome della connessione in peering da aggiornare. Se hai più connessioni peering, ometti il flag
--format
.gcloud services vpc-peerings list \ --network=$NETWORK \ --service=servicenetworking.googleapis.com \ --project=$PROJECT_ID \ --format "value(peering)"
Aggiorna la connessione in peering per esportare le route personalizzate.
gcloud compute networks peerings update PEERING-NAME \ --network=$NETWORK \ --export-custom-routes \ --project=$PROJECT_ID
Controllare lo stato delle connessioni peering
Per verificare che le connessioni di peering siano attive, puoi elencarle utilizzando
gcloud compute networks peerings list --network $NETWORK
Dovresti vedere che lo stato del peering che hai appena creato è ACTIVE
.
Scopri di più sulle connessioni di peering attive.
Invia il job di addestramento
Quando invii il job di addestramento, devi specificare il nome della rete a cui vuoi che AI Platform Training abbia accesso.
Se invii un job di addestramento senza un nome di rete, il job viene eseguito per impostazione predefinita senza una connessione di peering e senza accesso agli IP privati nel progetto.
Crea un file config.yaml per specificare la rete. Se utilizzi la Rete VPC condiviso, utilizza il numero del progetto host VPC.
Assicurati che il nome della rete sia formattato correttamente:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") cat << EOF > config.yaml trainingInput: scaleTier: BASIC network: projects/$PROJECT_NUMBER/global/networks/$NETWORK EOF
Crea un'applicazione di addestramento da inviare ad AI Platform Training.
Specifica altri parametri per il job di addestramento. Scopri di più sui parametri necessari per inviare un job di addestramento.
TRAINER_PACKAGE_PATH="PATH_TO_YOUR_TRAINING_APPLICATION" now=$(date +"%Y%m%d_%H%M%S") JOB_NAME="YOUR_JOB_NAME_$now" MAIN_TRAINER_MODULE="trainer.task" JOB_DIR="gs://PATH_TO_OUTPUT_DIRECTORY" REGION="us-east1" RUNTIME_VERSION="2.11" PYTHON_VERSION="3.7"
Invia il job passando il file config.yaml:
gcloud ai-platform jobs submit training $JOB_NAME \ --module-name $MAIN_TRAINER_MODULE \ --job-dir $JOB_DIR \ --region $REGION \ --runtime-version $RUNTIME_VERSION \ --python-version $PYTHON_VERSION \ --package-path $TRAINER_PACKAGE_PATH \ --config config.yaml
Esecuzione di job su reti diverse
Non puoi inviare job di addestramento a una nuova rete se sono ancora attivi su un'altra rete. Prima di passare a un'altra rete, devi attendere il completamento di tutti i job di addestramento inviati o annullarli. Ad esempio, se hai configurato una rete per i test e hai inviato job di addestramento su questa rete, dovrai cercare i job attivi sulla rete di test e assicurarti che siano completati o annullati prima di inviare job di addestramento su un'altra rete per la produzione.
Elenca i job di addestramento ancora attivi su una rete:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
NETWORK_FULL_NAME="projects/$PROJECT_NUMBER/global/networks/$NETWORK"
gcloud ai-platform jobs list \
--filter "(state=queued OR state=running) AND (trainingInput.network=$NETWORK_FULL_NAME)"
L'output potrebbe essere simile al seguente:
JOB_ID STATUS CREATED
job_20200502_151443 QUEUED 2020-05-02T15:14:47
Se sono elencati dei job, puoi attendere che vengano completati o utilizzare
gcloud ai-platform jobs cancel
per annullarli singolarmente.
Testa l'accesso ai job di addestramento
Per verificare che il job di addestramento possa accedere a un endpoint nella tua rete, devi configurare un endpoint nella tua rete e inviare un job di addestramento che acceda a questo endpoint. Scopri di più leggendo la guida al test della connessione di peering.
Risoluzione dei problemi
Questa sezione elenca alcuni problemi comuni per la configurazione del peering di rete VPC con AI Platform Training.
Quando invii il job di addestramento, utilizza il nome completo della rete:
"projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"
Non utilizzare le TPU in un job di addestramento in peering con la tua rete. Le TPU non sono supportate con il peering di rete VPC in AI Platform Training.
Prima di inviare job di addestramento su un'altra rete, assicurati che non siano presenti job di addestramento attivi su una rete.
Assicurati di aver allocato un intervallo IP sufficiente per tutti i produttori di servizi a cui si connette la tua rete, incluso AI Platform Training.
Per ulteriori informazioni sulla risoluzione dei problemi, consulta la guida alla risoluzione dei problemi relativi al peering di rete VPC.
Passaggi successivi
- Scopri di più sul peering di rete VPC.
- Consulta le architetture di riferimento e le best practice per la progettazione di VPC.
- Testare la connessione in peering