用 Docker 部署 GPUStack 集群管理器,编排 vLLM 等推理引擎提供 OpenAI 兼容模型服务。
GPUStack 负责调度与运维,自动配置推理引擎执行推理,Grafana/Prometheus 提供监控仪表板,Docker 承载部署。
方案简介
GPUStack 是一个开源的 GPU 集群管理器,用于 AI 模型推理服务和 GPU 实例供应。它配置和编排推理引擎(vLLM、SGLang、TensorRT-LLM 或您自定义的引擎),并支持按需启动可通过 SSH 访问的 GPU 实例。
这套方案解决的核心问题是:让开发团队、IT 组织和服务提供商能够大规模地提供模型即服务。它支持用于 LLM、语音、图像和视频模型的行业标准 API,内置用户认证和访问控制、GPU 性能和利用率的实时监控,以及令牌使用量和 API 请求率的详细计量。
适合人群:需要在本地服务器、Kubernetes 集群和云提供商等多环境中管理 GPU 集群,并希望以标准化 API 对外提供模型推理服务的团队。
亮点与能力
- 多集群 GPU 管理。 跨多个环境管理 GPU 集群。这包括本地服务器、Kubernetes 集群和云提供商。
- 可插拔推理引擎。 自动配置高性能推理引擎,如 vLLM、SGLang 和 TensorRT-LLM。您也可以根据需要添加自定义推理引擎。
- Day 0 模型支持。 新模型发布当天即可部署。
- 性能优化配置。 提供预调优模式,用于低延迟或高吞吐量,支持 LMCache 和 HiCache 等扩展 KV 缓存系统以减少 TTFT,内置支持 EAGLE3、MTP 和 N-grams 等推测性解码方法。
- GPU 实例。 按需启动可通过 SSH 访问的 GPU 实例,适用于开发、微调和交互式工作负载。
- 企业级运维能力。 支持自动故障恢复、负载均衡、监控、认证和访问控制。
- OpenAI 兼容 API。 可通过 API 密钥访问 GPUStack 提供的 OpenAI 兼容 API 端点。
组成与分工
- GPUStack:开源 GPU 集群管理器,负责集群管理、调度器分配 GPU 以最大化资源利用率,并选择合适的推理引擎以实现最佳性能。
- vLLM / SGLang / TensorRT-LLM:被 GPUStack 自动配置的高性能推理引擎,实际执行模型推理。
- Docker:GPUStack server 与 worker 节点的部署载体。
- NVIDIA Container Toolkit:worker 节点容器访问 GPU 的运行时依赖。
- Grafana / Prometheus:集成仪表板,全面了解系统运行状况和指标。
实施步骤
1. 安装并启动 GPUStack server
使用 Docker 安装并启动 GPUStack server:
bash
sudo docker run -d --name gpustack \
--restart unless-stopped \
-p 80:80 \
--volume gpustack-data:/var/lib/gpustack \
gpustack/gpustack
如果无法从 Docker Hub 拉取镜像,可通过指向 quay.io 使用镜像:
bash
sudo docker run -d --name gpustack \
--restart unless-stopped \
-p 80:80 \
--volume gpustack-data:/var/lib/gpustack \
quay.io/gpustack/gpustack \
--system-default-container-registry quay.io
2. 获取管理员密码并登录
检查启动日志:
bash
sudo docker logs -f gpustack
获取默认管理员密码:
bash
sudo docker exec gpustack cat /var/lib/gpustack/initial_admin_password
打开浏览器,访问 http://你的主机IP,使用默认用户名 admin 和上面获取的密码登录。
3. 设置 GPU 集群
- 在 GPUStack UI 中,导航到
集群页面。 - 点击
添加集群按钮。 - 选择
Docker作为集群提供商。 - 填写新集群的
名称和描述字段,然后点击保存按钮。 - 按照界面指南在 worker 节点上运行 Docker 命令将其连接到 server,命令类似:
bash
sudo docker run -d --name gpustack-worker \
--restart=unless-stopped \
--privileged \
--network=host \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume gpustack-data:/var/lib/gpustack \
--runtime nvidia \
gpustack/gpustack \
--server-url http://你的_gpustack_server_url \
--token 你的_worker_token \
--advertise-address 192.168.1.2
worker 节点成功连接后,它将出现在 GPUStack UI 的 Workers 页面中。
4. 部署模型
- 导航到
Catalog页面,从可用模型列表中选择Qwen3.5-0.8B模型。 - 部署兼容性检查通过后,点击
Save按钮部署模型。 - GPUStack 将开始下载模型文件并部署模型。当部署状态显示为
Running时,表示模型已成功部署。
使用与配置要点
在 Playground 中聊天
点击导航菜单中的 Playground - Chat,检查右上角 Model 下拉菜单中是否选中了 qwen3.5-0.8b 模型,即可在 UI playground 中与模型聊天。
创建 API 密钥
- 导航到
Access Control>API Keys页面,点击New API Key按钮。 - 填写
Name并点击Save按钮。 - 复制生成的 API 密钥并保存。请注意,该密钥仅在创建时可见一次。
通过 API 调用模型
使用 API 密钥访问 GPUStack 提供的 OpenAI 兼容 API 端点:
bash
export GPUSTACK_API_KEY=your_api_key
curl http://your_gpustack_server_url/v1/chat/completions \
-H "Content-Type: application/" \
-H "Authorization: Bearer $GPUSTACK_API_KEY" \
-d '{
"model": "qwen3.5-0.8b",
"messages": [
"role": "system",
"content": "You are a helpful assistant."
"role": "user",
"content": "Tell me a joke."
],
"stream": true
}'
注意事项与常见问题
- GPUStack worker 节点仅支持 Linux;Windows 用户可考虑使用 WSL2 并避免使用 Docker Desktop;macOS 不支持作为 worker 节点。
- API 密钥仅在创建时可见一次,请妥善保存。
- 如果无法从 Docker Hub 拉取镜像或下载速度很慢,可通过指向
quay.io使用镜像,并加上--system-default-container-registry quay.io参数。 - 详细的基准测试方法和结果可访问官方文档的推理性能实验室页面。
优缺点
- ✓ 自动配置高性能推理引擎
- ✓ 支持自动故障恢复与负载均衡
- ✕ worker 节点仅支持 Linux
- ✕ 需要已安装 NVIDIA 驱动
出处
本方案挖掘自开源项目 gpustack/gpustack,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。