跳到主要内容
文档导航
本页目录

快速开始

ModelSphere Console 是推理平台的统一入口:在这里部署模型、试用模型、发放 API 密钥,程序再用密钥通过 OpenAI 兼容接口调用模型。

前置条件​

下面的命令都在 modelsphere 仓库的检出目录里执行。本节对应安装指南的 Part C:在已有的 Kubernetes 集群上安装服务栈。裸机准备、创建集群见安装指南。

在你执行命令的那台机器上:

要求如何得到
一个 Kubernetes 集群,并且 kubectl 指向它kubectl config current-context
helm ≥ 3.8,helmfile ≥ 1.0自行安装;在 helm v4.3.0 + helmfile 1.8.0 上验证过
helm-diff 插件make helm-deps。每台机器做一次,不能省略:helmfile apply 会调用它

集群本身需要满足两点,无论安装哪些组件(见安装指南的 What your cluster needs):

要求具体是什么
Kubernetes ≥ 1.25各 chart 中最严格的 kubeVersion(kube-prometheus-stack);不装监控时为 1.21
一个 CNI任意一个都可以,也可以暂时没有:Part B 建出的集群在第 6 步安装 Cilium 之前没有 CNI。自带 CNI 时关掉 Cilium

之后要部署模型,还需要(见 Deploying a model):

  • GPU 节点要提供 nvidia.com/gpu:通过你自己的 device plugin,或者设置 enabled.gpuOperator: true。
  • 模型权重放在每个 GPU 节点的本地磁盘上,每个模型一个目录,例如 /mnt/disk0/models/<org>/<model>。model.localPath 是 hostPath,所以不支持共享存储(NFS、CephFS)。

安装服务栈​

注意

这一步会写入集群,默认值是给从零搭建的集群用的。environments/default.yaml 会打开十八个组件,其中包括 CNI、GPU operator、调度器和监控栈。集群里已经有的,先在环境文件里关掉——On a cluster you already have 就是可以照抄的那一块。

可选:先运行 make helm-bootstrap,安装 Gateway API CRD 和 PriorityClasses。以下三点同时成立时可以跳过:你用别的方式暴露路由层;自己的 values 没有指定 PriorityClass;没有打开 cilium.gatewayAPI(默认关闭;打开后 Cilium 也需要这些 CRD)。这两类对象是集群范围的,每个集群安装一次,不是每个人安装一次。

make helm-bootstrap # Gateway API CRDs + PriorityClasses

然后复制环境文件并按集群修改,登记到 helmfile.yaml.gotmpl 的 environments: 下面,再一次性安装整个服务栈。只放进 environments/ 目录还不够:没有登记的 values 文件,helmfile 不会读。

# 1. the stack itself, one pass
cp environments/private.yaml.example environments/mycluster.yaml # edit it,
# then add it under `environments:` in helmfile.yaml.gotmpl -- a values file
# nothing registers is a file helmfile never reads:
# mycluster:
# values:
# - environments/default.yaml
# - environments/mycluster.yaml
make helm-apply ENV=mycluster

helmfile.yaml.gotmpl 中登记后的样子:

environments:
mycluster:
values:
- environments/default.yaml # the base layer, then your overrides
- environments/mycluster.yaml

环境登记之后,可以先运行 make helm-diff ENV=mycluster:它会列出 apply 将要创建的全部内容,什么都不改;确认无误再运行 make helm-apply ENV=mycluster。

安装结束后检查:helm list -A 里每个启用的 release 都应该是 deployed,kubectl get pods -A 里除了 Running/Completed 不应有其他状态。

打开 Console​

Service 是 NodePort,release 起来就能访问,不用先配 Ingress:

NODE_PORT=$(kubectl -n console get svc console-console -o jsonpath='{.spec.ports[0].nodePort}')
NODE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}')
echo "http://$NODE_IP:$NODE_PORT/"

这也是 chart 自己给出地址的方式,helm status console -n console 会把它打印出来。在防火墙后面,做端口转发,再打开 http://localhost:8080/:

kubectl -n console port-forward svc/console-console 8080:8080

用 admin、密码 P@88w0rd 登录。第一次登录会要求设置新密码;默认密码是公开的,强烈建议换掉(见下文「登录」)。如果集群改过命名空间,把上面的 console 换成环境文件里的 namespaces.console。

一次完整的使用流程​

模型库选模型 -> 部署推理服务 -> 等待就绪 -> Playground 试用 -> 创建 API 密钥 -> 程序调用 /v1
步骤页面详见
选模型、部署「模型服务 → 模型库」部署模型
查看部署进度「模型服务 → 推理服务」部署模型
在线对话「Playground → 对话」Playground
发放密钥「路由 → API 密钥」调用 API
管理用户和角色「访问控制 → 用户」访问控制

登录​

  • 用管理员发放的用户名和密码登录。安装时自带的管理员账号是 admin。
  • 首次登录会要求设置新密码。可以沿用初始密码(会有提示),但建议换一个只有自己知道的密码。
  • 之后修改密码:右上角头像 → 修改密码。新密码至少 8 个字符,页面会实时显示强度。

界面​

  • 左侧菜单按功能分组。只显示当前账号有权限打开的页面;看不到某个菜单,说明角色没有授予对应权限,请联系管理员。
  • 右上角:
    • 使用文档:随时打开本文档。
    • 语言图标:在中文和英文之间切换。
    • 调色板图标:偏好设置,可选「混合导航 / 经典 / 极简」三种布局。偏好保存在本机浏览器,只影响当前设备。
    • 头像:查看当前身份、修改密码、退出登录。
  • 概览页显示当前会话(用户、分组、角色)和各模块的统计卡片。

菜单一览​

分组菜单用途
模型服务推理服务、模型库、节点、操作记录、站点配置部署和管理推理服务
Playground对话在浏览器里直接和模型对话
路由API 密钥为程序发放调用 /v1 的密钥
访问控制用户、登录历史、角色账号与权限管理
帮助使用文档本文档