本指南介绍如何测试一个训练作业可以访问网络中的专用 IP。首先,您需要在 VPC 网络和 AI Platform Training 之间创建专用连接。
概览
设置此测试包含两个部分:
- 在网络中设置端点。
- 提交测试训练作业以访问该端点。
设置端点
如需设置端点,请在网络中的虚拟机实例上设置本地服务器。
- 在 VPC 网络中创建一个 Compute Engine 实例。
- 检查防火墙规则,确保它们不会限制来自 AI Platform Training 网络的入站流量。如果是这样,请添加一条规则,以确保 AI Platform Training 网络可以访问您为 AI Platform Training(和其他服务提供方)预留的 IP 地址范围。
找到虚拟机的专用 IP 地址:
- 转到“虚拟机实例”页面
- 转到实例的虚拟机实例详情页面,然后找到该页面上列出的内部 IP 地址。
设置实例的名称,并运行以下
gcloud
命令:INSTANCE_NAME="your-instance-name" gcloud compute instances describe $INSTANCE_NAME \ --format="value(networkInterfaces.networkIP)"
通过 SSH 连接到您的虚拟机并安装 Node JS。
复制示例 Node JS 代码并填写您的专用 IP 地址:
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}/'); }); ```
运行服务器:
nodejs hw.js
断开虚拟机 SSH 连接以提交训练作业。
提交测试训练作业
此训练作业不会训练模型,而是访问端点以验证 AI Platform Training 是否可以访问网络中的专用 IP 地址。
- 复制示例 Python 训练应用以提交到 AI Platform Training。
更新代码以包含您的专用 IP 地址:
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()
创建一个 config.yaml 以指定网络。如果您使用的是共享 VPC,请使用您的 VPC 宿主项目的编号。
确保网络名称的格式正确无误:
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
将作业提交到 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
您的作业应该会成功并输出“对等互连成功”,这表明您已与 AI Platform Training 建立对等互连连接。