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'uso dell'IP privato per la connessione ai job di addestramento offre minore latenza di rete rispetto all'uso di un IP pubblico.
Questa guida mostra come configurare l'IP privato con AI Platform Training utilizzando 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 tratta le seguenti attività:
- Configura l'accesso privato ai servizi per il VPC. Questo stabilisce una connessione in peering tra il tuo VPC e rete VPC condivisa.
- Prendi in considerazione l'intervallo IP da prenotare per AI Platform Training.
- Se applicabile, esporta route personalizzate in modo che AI Platform Training possa importarli.
- Verifica lo stato delle connessioni in 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 nella tua rete.
Prima di iniziare
- Seleziona una VPC con cui vuoi creare un peering con i job di addestramento di AI Platform.
- Seleziona o crea un progetto Google Cloud con cui eseguire job di addestramento e 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 un VPC condiviso. Se utilizzi VPC condiviso, di solito esegui job di addestramento in un ambiente Google Cloud rispetto al progetto host 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
gcloud
esempi delle righe di comando 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ù sulle 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 VPC alla 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 imposti 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 produttore di servizi. Per configurare accesso privato ai servizi, riservare un intervallo IP per i producer di servizi; e e poi creerai una connessione in peering con AI Platform Training.
Se hai già un VPC con accesso privato ai servizi configurato e vuoi utilizzare quel VPC per eseguire il peering un job di addestramento personalizzato, passa all'esportazione di route personalizzate.
- Imposta le variabili di ambiente per l'ID progetto, il nome della regione e il nome del tuo
intervallo riservato e il nome della rete.
- Se utilizzi la Rete VPC condivisa, 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 e 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 le reti di servizi 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 producer di servizi, questo intervallo può essere utilizzato sia AI Platform Training sia altri servizi. Pertanto, se prevedi di connettere altri servizi allo stesso intervallo riservato, devi inoltre assicurarti che l'intervallo è abbastanza grande 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
può essere eseguito con intervalli riservati da /16
a /19
, supponendo che l'intervallo sia utilizzato
quasi esclusivamente tramite 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 dei parametri. |
/16 | 15 | |
/17 | 7 | ||
/18 | 3 | ||
/19 | 1 |
Scopri di più su specificando i tipi di macchina per i job di addestramento.
Esporta route personalizzate
Se utilizzi route personalizzate, devi esportarle in modo che AI Platform Training possono importarli. Se non utilizzi le route personalizzate, passa alle l'invio del tuo 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ù su connessioni private con 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 di 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 appena creato è ACTIVE
.
Scopri di più sulle connessioni in 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 condivisa, 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ù sulle 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. Per Ad esempio, se hai configurato una rete per i test e hai inviato job di addestramento della rete di test, dovrai cercare i job attivi e assicurati che siano stati completati o annullati prima di inviare la formazione. su una rete diversa 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 al job di addestramento
Per verificare che il job di addestramento possa accedere a un endpoint nella tua rete, devi per configurare un endpoint nella tua rete e poi inviare un job di addestramento vi acceda. 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 la formazione della piattaforma AI.
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.
Assicurati che non ci siano job di addestramento attivi su una rete prima dell'invio di addestramento su una rete diversa.
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: architetture di riferimento e best practice per la progettazione di VPC.
- Testare la connessione in peering