实验 6: 在 HAMi GPU 分片上运行 vLLM 推理
本实验演示如何在一个已经具备 NVIDIA GPU 的 Kubernetes 集群中安装 HAMi,并用 HAMi 调度 vLLM 推理服务。完成后,你将得到一个 OpenAI-compatible 的模型服务,可以通过 /v1/models 和 /v1/chat/completions 验证。
本文使用一个阿里云 ACK GPU 集群作为参考环境,但步骤并不绑定 ACK。只要你的 Kubernetes 集群已经有可用 NVIDIA GPU、NVIDIA 驱动和容器运行时支持,就可以按同样方式复现;云厂商相关的 LoadBalancer 和 ALB Ingress 配置可以替换为你自己的暴露方式。
学习目标
- 检查已有 GPU Kubernetes 集群是否满足 HAMi 和 vLLM 的前提条件
- 安装 HAMi scheduler 和 device plugin
- 给 GPU 节点补充 HAMi DaemonSet 所需标签
- 用 HAMi 的
nvidia.com/gpu、nvidia.com/gpumem、nvidia.com/gpucores资源运行 vLLM - 通过公网 LoadBalancer 或端口转发测试 vLLM 的 OpenAI-compatible API
实验概览
部署架构
前提条件
你需要提前准备:
- 一个已经可用的 Kubernetes 集群
- 至少 1 个 NVIDIA GPU 节点;本文示例使用 3 个 NVIDIA A10 节点
kubectl已经连接到该集群helm3.x- GPU 节点已经安装 NVIDIA 驱动和容器运行时支持
- 集群可以拉取 vLLM 镜像和模型文件
本文的配置文件如下:
| 文件 | 用途 |
|---|---|
hami-values-ack.yaml | ACK 示例 HAMi values,使用 DaoCloud 镜像代理并匹配 ACK GPU 节点标签。 |
vllm-qwen25-7b.yaml | vLLM Deployment 和 vllm-qwen25-7b-engine-service ClusterIP Service。 |
vllm-public-service-aliyun.yaml | 阿里云公网 LoadBalancer Service 示例。 |
vllm-ingress-aliyun.yaml | 阿里云 ALB Ingress 示例。 |
如果你不是在 ACK 上运行,仍然可以使用
vllm-qwen25-7b.yaml。只需要把镜像、节点标签和服务暴露方式改成你的环境可用的配置。