Puoi configurare i job di AI Platform Training in modo che siano in peering con Virtual Private Cloud (VPC). Ciò consente ai job di addestramento di accedere a indirizzi IP privati all'interno di Google Cloud o delle reti on-premise. L'uso dell'IP privato per la connessione ai job di addestramento offre maggiore sicurezza di rete e minore latenza di rete rispetto all'uso 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 rete con i job di AI Platform Training. Questa guida è consigliata per gli amministratori di rete che hanno già familiarità con i concetti di rete di Google Cloud.
Panoramica
Questa guida tratta 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.
- Considera 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 in peering.
- Invia un job di addestramento sulla tua rete.
- Verifica la presenza di job di addestramento attivi su una rete prima di inviare job su un'altra rete.
- Verifica che un job di addestramento possa accedere a IP privati nella tua rete.
Prima di iniziare
- Seleziona un VPC da connettere in peering con i job di AI Platform Training.
- Seleziona o crea un progetto Google Cloud per eseguire job di addestramento con AI Platform Training.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Compute Engine API, AI Platform Training & Prediction, and the Service Networking.
- Facoltativamente, puoi utilizzare un VPC condiviso. Se utilizzi un VPC condiviso, in genere esegui job di addestramento in un progetto Google Cloud separato rispetto al progetto host VPC. Abilitare l'API Compute Engine e le API Service Networking in entrambi i progetti. Scopri come eseguire il provisioning del VPC condiviso.
- Installa gcloud CLI se vuoi eseguire gli esempi di riga di comando
gcloud
in questa guida.
Autorizzazioni
Se non sei un proprietario o un editor del progetto, assicurati di disporre del ruolo Amministratore di rete Compute, che include le autorizzazioni necessarie per gestire le risorse di networking.
Per eseguire job su AI Platform Training, devi disporre delle autorizzazioni incluse nei ruoli Sviluppatore di AI Platform Training o 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 previsti passaggi aggiuntivi:
- Connetti la tua rete on-premise al VPC. Puoi utilizzare un tunnel VPN o Interconnect.
- Configura route personalizzate dal VPC alla rete on-premise.
- Esporta le route personalizzate in modo che AI Platform Training possa importarle.
Configura l'accesso privato ai servizi per il tuo 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 privato ai servizi, devi riservare un intervallo IP per i producer di servizi, quindi creare una connessione in peering con AI Platform Training.
Se hai già configurato un VPC con accesso privato ai servizi e vuoi utilizzarlo per il peering con il job di addestramento, passa 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 un VPC condiviso, utilizza l'ID del progetto host del VPC. In caso contrario, usa l'ID del progetto Google Cloud che usi 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 abilitare 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 tuo progetto host VPC e il networking 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 privato ai servizi.
Prenotazione di intervalli IP per AI Platform Training
Quando prenoti un intervallo IP per i producer di servizi, questo intervallo può essere utilizzato sia da AI Platform Training sia da altri servizi. Pertanto, se prevedi di connettere altri servizi allo stesso intervallo riservato, devi anche assicurarti che l'intervallo sia abbastanza grande da evitare l'esaurimento degli IP.
Puoi stimare in modo prudente 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 parallelo che puoi eseguire con intervalli riservati da /16
a /19
, supponendo che l'intervallo venga 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 dei 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 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, passa all'invio del job di addestramento.
Per esportare route personalizzate, devi aggiornare la connessione in peering nel VPC. L'esportazione di route personalizzate invia tutte le route statiche e dinamiche idonee che si trovano nella tua rete VPC, come le route alla tua rete on-premise, alle reti dei producer di servizi (in questo caso AI Platform Training). Questo stabilisce le connessioni necessarie e consente ai job di addestramento di inviare il traffico alla rete on-premise.
Scopri di più sulle connessioni private con reti on-premise.
Console
- Vai alla pagina Peering di rete VPC nella console Google Cloud.
Vai alla pagina Peering di rete VPC - Seleziona la connessione in peering da aggiornare.
- Fai clic su Modifica.
- Seleziona Esporta route personalizzate.
gcloud
Trova il nome della connessione in peering da aggiornare. Se disponi di più connessioni in 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 in peering
Per verificare che le connessioni in 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, questo viene eseguito per impostazione predefinita senza una connessione in peering e senza accesso agli IP privati nel tuo progetto.
Crea un file config.yaml per specificare la rete. Se utilizzi un VPC condiviso, utilizza il numero di progetto host del 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 mentre sono ancora attivi job di addestramento 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 quella rete di test, dovrai cercare i job attivi sulla rete di test e assicurarti che siano completati o annullati prima di inviare i job di addestramento 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 a questo:
JOB_ID STATUS CREATED
job_20200502_151443 QUEUED 2020-05-02T15:14:47
Se sono elencati dei job, puoi attendere il completamento o utilizzare
gcloud ai-platform jobs cancel
per annullarli tutti.
Test dell'accesso al job di addestramento
Per verificare che il job di addestramento possa accedere a un endpoint nella rete, devi configurare un endpoint nella rete, quindi inviare un job di addestramento che vi acceda. Scopri di più leggendo la guida ai test della connessione in peering.
Risoluzione dei problemi
Questa sezione elenca alcuni problemi comuni relativi alla 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 TPU in un job di addestramento in peering con la rete. Le TPU non sono supportate con il peering di rete VPC su AI Platform Training.
Assicurati che non ci siano job di addestramento attivi su una rete prima di inviare job di addestramento su un'altra rete.
Assicurati di aver allocato un intervallo IP sufficiente per tutti i producer di servizi a cui si connette la rete, incluso AI Platform Training.
Per ulteriori informazioni sulla risoluzione dei problemi, consulta la Guida alla risoluzione dei problemi di peering di rete VPC.
Passaggi successivi
- Scopri di più sul peering di rete VPC.
- Consulta le architetture e le best practice di riferimento per la progettazione dei VPC.
- Verificare la connessione in peering