Utilizzo del peering di rete VPC con Training

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.

    Abilita le API

  • 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:

  1. Connetti la tua rete on-premise al VPC. Puoi utilizzare un tunnel VPN o Interconnect.
  2. Configura route personalizzate dal VPC alla rete on-premise.
  3. 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.

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

  1. Vai alla pagina Peering di rete VPC nella console Google Cloud.
    Vai alla pagina Peering di rete VPC
  2. Seleziona la connessione in 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 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)"
    
  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 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.

  1. 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
    
  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 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