Test della connessione in peering per IP privati

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

Panoramica

La configurazione di questo test prevede due parti:

  • Configura un endpoint nella tua rete.
  • Invia un job di addestramento di test 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 firewall per assicurarti che non limitino il traffico in entrata dalla rete AI Platform Training. In tal caso, aggiungi una regola per garantire che la rete AI Platform Training possa accedere all'intervallo IP che hai prenotato per AI Platform Training (e altri producer di servizi).
  3. Trova l'indirizzo IP privato della tua VM:

    • Vai alla pagina Istanze VM
    • Vai alla pagina Dettagli istanza VM dell'istanza e trova 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. SSH nella VM e l'installazione di 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 dalla SSH della VM per inviare il job di addestramento.

Inviare un job di addestramento di prova

Anziché addestrare un modello, questo job di addestramento accede all'endpoint per verificare che AI Platform Training possa accedere all'IP privato nella tua rete.

  1. Copia l'applicazione di addestramento Python di esempio per inviarla ad AI Platform Training.
  2. Aggiorna il codice per 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 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)")
    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 il messaggio "Peering riuscito", per convalidare la connessione in peering con AI Platform Training.