Utilizzo del peering di rete VPC con Training

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.

    Enable the 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:

  1. Collega la tua rete on-premise alla tua VPC. Puoi utilizzare un tunnel VPN o un interconnessione.
  2. Configura le route personalizzate dalla VPC alla tua rete on-premise.
  3. 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.

  1. 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.
  2. 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.
  3. Imposta un intervallo riservato utilizzando gcloud compute addresses create.
  4. 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

  1. Vai alla pagina Paritetà di rete VPC nella console Google Cloud.
    Vai alla pagina Peering di rete VPC
  2. Seleziona la connessione di peering da aggiornare.
  3. Fai clic su Modifica.
  4. Seleziona Esporta route personalizzate.

gcloud

  1. 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)"
    
  2. 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.

  1. 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
    
  2. Crea un'applicazione di addestramento da inviare ad AI Platform Training.

  3. 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"
    
  4. 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