CubeStudio 端口使用情况
本篇说明 CubeStudio 各组件/功能占用的端口区间、端口计算公式,以及只能开放单端口/域名时的代理方案。
端口公式来源:
myapp/config.py:1105-1107(NOTEBOOK_PORT/SERVICE_PORT/INFERENCE_PORT),动态端口在myapp/models/model_serving.py、myapp/models/model_notebook.py中按公式计算。
端口一览表
| 端口区间 | 描述 | 作用 / 计算方式 |
|---|---|---|
443 |
rancher server 管理端口 | 管理员通过 rancher server 管理集群和扩缩容。注意 rancher web 是 https 协议。 |
80 |
CubeStudio 平台端口 | CubeStudio 平台前后端入口端口。 |
8080 |
内部服务/推理服务代理端口 | 部署的服务可以通过泛域名或端口访问;对于需要多端口的服务,使用 80 和 8080 作为代理。 |
10000~20000 |
notebook ssh 链接端口 | 公式 10000+2*ID(ID 为 notebook 实例 id)。可从本地通过该端口 ssh 远程连接对应 notebook,也可经一台代理机器跳转连接。 |
20000~30000 |
推理服务开放端口 | 公式 20000+2*ID(ID 为推理服务 InferenceService 实例 id)。通过该端口访问自己创建的推理服务。 |
30000~40000 |
内部服务(云原生服务)开放端口 | 公式 30000+2*ID(ID 为内部服务 Service 实例 id)。通过该端口访问自己创建的内部服务。 |
说明(与代码核对):
- 原文档把 notebook 端口写作
10000+2*notebook_id、推理写作20000+2*service_id,与代码一致。- 原文档把内部服务端口写作
10000+2*inference_id,有误:内部服务对应配置项SERVICE_PORT='30000+2*ID'(myapp/config.py:1106,模型Service,见myapp/models/model_serving.py:87),即30000+2*ID,已在上表中改正。- 这三个端口公式都可以在配置文件中改(
NOTEBOOK_PORT/SERVICE_PORT/INFERENCE_PORT,myapp/config.py:1105-1107)。config.py注释提示:notebook 端口“至少间隔 4”(web 一个、ssh 一个,大数据版本还要两个端口做 spark driver)。- 平台还有端口黑名单
BLACK_PORT=[10250](myapp/config.py:818,10250是 kubelet 端口),分配端口时会跳过黑名单端口。
无法开放多端口时的代理方案
某些网络环境(云上安全组、内网防火墙)只允许放开有限端口。两类动态端口可以这样收敛:
10000~20000的 notebook ssh 服务:可以用 ssh 隧道只开放一个端口。具体见 在线 IDE 中“单端口代理 jupyter 内部 ssh server”部分。20000~30000的推理服务和30000~40000的内部服务:可以用域名进行代理。具体见 模型服务 与 内部服务 中的“域名访问”部分。
本端口表同时是 07-参考速查(端口速查)的核心素材。