TCP/IP代理服务aipproxy#
概述#
AIP TCP/IP代理服务针是对4层网络通讯的转发和代理,7层网络(如http)转发由NGINX支持,不在该服务代理范围内。
服务架构见下图。

左边的负载均衡器由第三方提供。中间层是aipproxy代理服务,每个代理具有完全一致的配置。 每个代理配置一组相同的对外开放的端口,如1000个端口:11333-12332,用于最多1000个并发作业的转发。这些端口由AIP为所需转发的作业统一分配和调度。
AIP分配的端口通过共享文件系统通知aipproxy。
安装和配置#
明确入口IP地址,和对外开放的端口范围
配置AIP
cb.yaml里增加共享资源,这个资源是AIP用于为需要转发的作业调度外网端口的。
cluster: resources: - name: proxy description: Number of ports configured in Proxy type: number direction: decrease assign: yes slotresource: no instances: "1000@[all]"
上面的1000是外网开放的端口总数。修改配置后需要重启master的cbls:
cadmin lsrestart
验证:命令chinfo -s和chosts -s输出proxy配置的值,如1000。
在/opt/skyformai/etc/里增加一个配置文件proxy.yaml:
pubip: 10.2.2.3 ports: 11333-12332
上面两行定义外网入口IP(pubip)和对外开放的端口范围(ports), 端口总数应该和cb.yaml里配置的proxy里instances的数字一致。
安装和配置aipproxy 运行aipproxy的主机必须是AIP的客户端(或集群主机),可以访问aip集群的 /opt/skyformai/etc和/opt/skyformai/work(共享aip集群的这两个目录,按照原路径格式挂过来) 。常规实践在是应用平台的NGINX的主机上部署。 AIP安装包解压后,cd aipproxy,然后运行./aipproxy_install
安装后检查:systemctl status aipproxy 服务日志:/var/log/aipproxy目录下
作业提交#
需要使用转发的作业需要增加参数proxy。例子:
sshdjob:
csub –proxy sshdjob
cread的结果会自动使用外网入口IP和对外开放的端口。输出分两段,用分号隔开:
ssh -i key -p 11333 u001@10.2.2.3;ssh -i key -p 16331 u001@192.168.10.10
第一段是外网访问命令行,第二段是内网访问命令行。
vncsub:
vncsub –proxy xterm
cread的结果里vncip指向对外开放的端口,如10.2.2.3,vncport指向对外开放的端口,如11333, 本机IP地址和端口放在localip和localport里,例子:
/aj/192.168.10.10/16000/crv.html?path=/aj/192.168.10.10/16000?token=token5240&autoconnect=true&password=bDLrbPUQEqOn4n.Y74crwi51YDMXY7O0&quality=9&compression=5&vncip=192.168.0.10&vncport=10001&localip=192.168.10.10&localport=5901&resize=remote
如果vncsub.yaml里定义了vncpubweb_ips,vncsub -prioxy里的转发将不起作用。