Skip to content

Notebook自定义服务-多服务支持

目前Notebook自定义服务仅支持暴露一个端口,如果需要暴露容器内部多个服务,需要在容器内部通过代理插件增加一层转发层,将自定义服务暴露转发层的端口,在转发层配置多个代理服务。

1. 下载插件

在容器内部下载插件

shell
# 下载插件包
wget https://mallcdn.accloud.cn/hpc_lsh/2c740f9410d5f593ef889b3b79aa4b68.zip?proxy_in_instance.zip

# 重命名 & 解压
mv 2c740f9410d5f593ef889b3b79aa4b68.zip proxy_in_instance.zip
unzip proxy_in_instance.zip

2. 准备代理配置

1)准备代理配置文件(config.yaml),配置文件需要和代理插件在相同的目录下

1.png

2)修改config.yaml文件,配置内部服务IP:PORT、访问路径

shell
# vim config.yaml
proxies:
   - host_and_port: http://127.0.0.1:5000  # 要代理到的服务地址
     route_path: /v1/*                     # 匹配什么路由就转发到此地址

   - host_and_port: http://127.0.0.1:5001  # 可设置多组,转发到不同的host
     route_path: /v2/*

3. 启动服务

  • 启动内部服务,使用Python工具包Flask进行示例
shell
# vim service1.py && python service1.py
# 模拟监听5000端口的服务
from flask import Flask
app = Flask(__name__)

@app.route('/v1/demo')
def hello():
    return 'I`m port 5000'

if __name__ == '__main__':
    app.run(port=5000)

# vim service2.py && python service2.py
# 模拟监听5001端口的服务
from flask import Flask
app = Flask(__name__)

@app.route('/v2/demo')
def hello():
    return 'I`m port 5001'

if __name__ == '__main__':
    app.run(port=5001)
  • 启动代理服务,代理服务默认端口6006
shell
# 可执行权限
chmod +x proxy_in_instance

# 启动
./proxy_in_instance

4. 配置自定义服务

  • 配置代理服务端口

2.png