AIP Web 代理¶
AIP的作业,如VNC、JupyterLab、VSCode等通过HTTP协议提供服务的应用,可以使用AIP自带的Web代理为通过门户访问集群的用户提供服务, 而不用对外暴露计算节点。
安装¶
在用户访问的前端服务器上(如天纺安装的服务器、AIP门户安装的服务器),解压AIP包,然后运行:./crvproxy-install (命令可以带一些参数,详见 ./crvproxy-install –help) 安装后的服务名为:crvproxy
安装后/opt/skyformai/etc/vncsub.yaml里的两个参数被修改:
pp: 这个参数指向crvproxy的入口,如:https://192.168.10.10:1443,如果系统部署了多台天纺服务器,用户接入使用虚IP,把修改这个参数改成虚拟IP。vncsub生成的URL会指向这个IP地址
ppapi:这个是用户动态修改转发的API入口,是从集群内部(vncsub)可以访问的地址。如: http://192.168.10.10:1444,如果部署了多台天纺服务器,每台服务器的crvproxy配置API地址都必须列出,以实现高可用
vncsub.yaml的例子:
pp: https://192.168.10.179:1443
ppapi:
- http://192.168.10.179:1444
这些参数可以直接运行vncsub来查看:
$ vncsub
Usage: vncsub [-geometry MxN] [-vnc vncserver_dir] [-vglrun|-novglrun] [-xstartup script] [scheduler_submit_options] [-command] [desktop] job_command ...
Common parameters:
Web forwarding proxy: https://192.168.10.179:1443
proxy API URL: http://192.168.10.179:1444
Session geometry: -geometry 1900x1060
VNC desktop autokill: Yes
vncserver directory: /opt/skyformai/etc/skyformcrv/bin
Graphics compression (0-9): 5
CRV port: 16000
Desktop scaling mode: remote
crvproxy-install的参数¶
./crvproxy-install [--port=front_port] [--sslkey=ssl_keypath] [--sslcert=ssl_certfile]
–port 定义对外服务的端口,这个端口为用户访问作业服务的端口,缺省为1443,这个端口必须与vncsub.yaml里配置的一致。
–sslkey 定义对外服务使用HTTPS时使用的SSL key文件路径。
–sslcert 定义对外服务使用HTTPS时使用的SSL证书文件路径。
排错¶
查看已配置的转发:curl http://<api_url>/api/routes,具体API参考:https://github.com/jupyterhub/configurable-http-proxy?tab=readme-ov-file#using-the-rest-api
通过vncsub提交的作业桌面共享¶
桌面共享是通过生成特定的crvproxy转发实现的,这样可以随时删除这个转发配置,从而删除共享。桌面共享管理使用AIP内置的命令vncurl实现。
生成共享¶
vncurl -k [-r] -j 作业号 需要共享的用户名。-r 是生成只读,不可操作的共享。
例子:
$ vncsub desktop # 启动一个桌面
Job 200916 has been submitted to the default queue [medium].
$ cread 200916 # 获取桌面链接
Messages posted to jobID 200916
POST_TIME: Mar 7 11:03:07 MESSAGE: https://192.168.10.100:1443/job/8000d7977eea3782e686724c5ecddbf5/crv.html?path=?token=token200916&autoconnect=true&password=T9Xp9JQt9vryt2G01Lb41ijJlI3imJg5&quality=9&compression=5&vncip=192.168.10.22&vncport=5901&localip=192.168.10.22&localport=5901&resize=remote&mark=30
$ vncurl -k -r -j 200916 cadmin # 生成与用户cadmin共享的只读桌面
https://192.168.10.100:1443/job/8000d7977eea3782e686724c42cbda33/crv.html?path=?token=token200916&autoconnect=true&password=T9Xp9JQt9vryt2G01Lb41ijJlI3imJg5&quality=9&compression=5&resize=remote&mark=30
删除共享¶
vncurl -d -j 作业号 共享的用户名
例子:
$ vncurl -d -j 200916 cadmin # 删除共享链接