Test della connessione in peering per IP privati

Questa guida spiega come verificare che un job di addestramento possa accedere agli IP privati in della tua rete. Innanzitutto, devi creare una connessione privata tra la tua rete VPC e la formazione della piattaforma AI.

Panoramica

La configurazione di questo test prevede due parti:

  • Configura un endpoint nella tua rete.
  • Invia un job di addestramento di prova per accedere a quell'endpoint.

configura un endpoint

Per configurare un endpoint, configura un server locale su un'istanza VM nella tua rete.

  1. Crea un'istanza Compute Engine nella tua rete VPC.
  2. Controlla le regole del firewall per assicurarti che non limitino l'accesso dalla rete di AI Platform Training. In questo caso, aggiungi una regola per assicurarti che la rete di AI Platform Training possa accedere all'intervallo IP che hai riservato per AI Platform Training (e altri produttori di servizi).
  3. Trova l'indirizzo IP privato della VM:

    • Vai alla pagina Istanze VM
    • Vai alla pagina Dettagli istanza VM della tua istanza e individua l'IP interno elencato nella pagina.
    • Imposta il nome dell'istanza ed esegui il seguente comando gcloud:

      INSTANCE_NAME="your-instance-name"
      gcloud compute instances describe $INSTANCE_NAME \
        --format="value(networkInterfaces.networkIP)"
      
  4. Accedi alla VM tramite SSH e installa Node JS.

  5. Copia il codice Node JS di esempio e inserisci il tuo indirizzo IP privato:

     const http = require('http');
     // Fill in the value of your vm's private IP
     const hostname = 'your_private_ip';
     const port = 3000;
     const server = http.createServer((req, res) => {
               res.statusCode = 200;
               res.setHeader('Content-Type', 'text/plain');
               res.end('Hello World ' + req.url + '\n');
     });
     server.listen(port, hostname, () => {
               console.log('Server running at http://${hostname}:${port}/');
     });
     ```
    
  6. Esegui il server:

    nodejs hw.js
    
  7. Esci dall'SSH della VM per inviare il job di addestramento.

Invio di un job di addestramento di prova

Invece di addestrare un modello, questo job di addestramento accede al tuo endpoint per verificare che l'addestramento di AI Platform possa accedere all'IP privato nella tua rete.

  1. Copia l'applicazione di addestramento Python di esempio per inviarla a e AI Platform Training.
  2. Aggiorna il codice in modo da includere il tuo indirizzo IP privato:

    import logging
    import os
    import sys
    def main():
      # Fill in the value of your vm's private IP
      hostname = "your_private_ip"
      response = os.system("curl http://" + hostname + ":3000/you_can_write_your_name_here")
      if response == 0:
        print(hostname, "is up!")
        logging.info("%s is up; Peering successful!", hostname)
        sys.exit(0)
      else:
        logging.error("%s is down; Peering failed!", hostname)
        sys.exit(1)
    if __name__ == "__main__":
      logging.getLogger().setLevel(logging.INFO)
      main()
    
  3. Crea un file config.yaml per specificare la rete. Se utilizzi VPC condiviso, utilizza il numero di progetto host VPC.

    Assicurati che il nome della rete sia formattato correttamente:

    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    NETWORK=your-network-name
    
    cat << EOF > config.yaml
    trainingInput:
      scaleTier: BASIC
      network: projects/$PROJECT_NUMBER/global/networks/$NETWORK
    EOF
    
  4. Invia il job ad AI Platform Training:

    BUCKET_NAME=your_bucket_name
    JOB_ID='test_vpc_peering_job'
    
    gcloud ai-platform jobs submit training $JOB_ID \
      --module-name trainingcode.test_peering \
      --stream-logs \
      --runtime-version 1.15 \
      --job-dir gs://$BUCKET_NAME/$JOB_ID \
      --region us-central1 \
      --package-path trainingcode/ \
      --config config.yaml
    

    Il job dovrebbe riuscire e stampare "Peering riuscito", il che convalida la connessione di peering con AI Platform Training.