Como testar a conexão de peering para IPs particulares

Nesta seção, explicamos como testar se um job de treinamento pode acessar IPs particulares na rede. Primeiro, crie uma conexão particular entre a rede VPC e o AI Platform Training.

Visão geral

A configuração desse teste tem duas partes:

  • Configurar um endpoint na rede.
  • Enviar um job de treinamento de teste para acessar esse endpoint.

Configurar um endpoint

Para configurar um endpoint, configure um servidor local em uma instância de VM na rede.

  1. Crie uma instância do Compute Engine na sua rede VPC.
  2. Verifique suas regras de firewall para garantir que elas não restrinjam a entrada da rede do AI Platform Training. Em caso afirmativo, adicione uma regra para garantir que a rede do AI Platform Training possa acessar o intervalo de IPs reservado para ele (e outros produtores de serviços).
  3. Encontre o endereço IP particular da VM:

    • Acessar a página "Instâncias de VM"
    • Acesse a página Detalhes da instância de VM e encontre o IP interno listado na página.
    • Defina o nome da instância e execute o seguinte comando gcloud:

      INSTANCE_NAME="your-instance-name"
      gcloud compute instances describe $INSTANCE_NAME \
        --format="value(networkInterfaces.networkIP)"
      
  4. Conecte o SSH à VM e instale o Node.js.

  5. Copie o código do Node.js de amostra e preencha o endereço IP particular:

     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. Execute o servidor:

    nodejs hw.js
    
  7. Saia do SSH da VM para enviar o job de treinamento.

Enviar um job de treinamento de teste

Em vez de treinar um modelo, este job de treinamento acessa o endpoint para verificar se o AI Platform Training pode acessar IPs particulares na rede.

  1. Copie o aplicativo de treinamento em Python de amostra para enviar ao AI Platform Training.
  2. Atualize o código para incluir o endereço IP particular:

    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. Crie um config.yaml para especificar a rede. Se você estiver usando a VPC compartilhada, use o número do projeto host da VPC.

    Verifique se o nome da rede está formatado corretamente:

    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. Envie o job para o 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
    

    O job precisa ter êxito e exibir "Peering bem-sucedido". Isso valida a conexão de peering com o AI Platform Training.