Peering-Verbindung für private IP-Adresse testen

In diesem Abschnitt wird erläutert, wie Sie testen können, ob ein Trainingsjob auf private IP-Adressen in Ihrem Netzwerk zugreifen kann. Zuerst müssen Sie eine private Verbindung zwischen Ihrem VPC-Netzwerk und AI Platform Training erstellen,

Übersicht

Das Einrichten dieses Tests besteht aus zwei Teilen:

  • Endpunkt in Ihrem Netzwerk einrichten
  • Einen Testtrainingsjob senden, um Zugriff auf diesen Endpunkt zu erhalten

Endpunkt einrichten

Zum Einrichten eines Endpunkts richten Sie einen lokalen Server auf einer VM-Instanz in Ihrem Netzwerk ein.

  1. Erstellen Sie eine Compute Engine-Instanz in Ihrem VPC-Netzwerk.
  2. Prüfen Sie Ihre Firewallregeln, um sicherzustellen, dass sie den eingehenden Traffic aus dem AI Platform-Trainingsnetzwerk nicht einschränken. Falls ja, fügen Sie eine Regel hinzu, um sicherzustellen, dass das AI Platform Training-Netzwerk auf den IP-Bereich zugreifen kann, den Sie für AI Platform Training (und andere Dienstersteller) reserviert haben.
  3. Suchen Sie die private IP-Adresse Ihrer VM:

    • Zur Seite "VM-Instanzen"
    • Gehen Sie zur Seite VM-Instanzdetails Ihrer Instanz und suchen Sie die interne IP-Adresse, die auf der Seite aufgeführt ist.
    • Legen Sie den Namen Ihrer Instanz fest und führen Sie den folgenden gcloud-Befehl aus:

      INSTANCE_NAME="your-instance-name"
      gcloud compute instances describe $INSTANCE_NAME \
        --format="value(networkInterfaces.networkIP)"
      
  4. Stellen Sie eine SSH-Verbindung zu Ihrer VM her und installieren Sie Node.js.

  5. Kopieren Sie den Node JS-Beispielcode und geben Sie Ihre private IP-Adresse ein:

     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. Führen Sie den Server aus:

    nodejs hw.js
    
  7. Beenden Sie die VM-SSH-Verbindung, um den Trainingsjob zu senden.

Testtrainingsjob senden

Anstatt ein Modell zu trainieren, greift dieser Trainingsjob auf den Endpunkt zu, um zu prüfen, ob AI Platform Training auf die private IP-Adresse in Ihrem Netzwerk zugreifen kann.

  1. Kopieren Sie die Python-Trainingsanwendung, die Sie an AI Platform Training senden möchten.
  2. Aktualisieren Sie den Code mit Ihrer privaten IP-Adresse:

    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. Erstellen Sie eine config.yaml, um das Netzwerk anzugeben. Wenn Sie eine freigegebene VPC verwenden, geben Sie die Nummer Ihres VPC-Hostprojekts an.

    Prüfen Sie, ob der Netzwerkname richtig formatiert ist:

    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. Senden Sie den Job an 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
    

    Wenn der Job erfolgreich ist, sehen Sie "Peering erfolgreich". Damit ist die Peering-Verbindung mit AI Platform Training validiert.