基础设施前置条件
本文件将指导您选择运行 llm-d 的 Kubernetes 基础设施。它涵盖了 llm-d 的基本硬件和软件要求、集群配置,以及针对基础设施提供商(云平台、特定发行版)的特定配置。
llm-d 基础设施
llm-d 在以下配置上进行测试,支持最前沿的 AI 加速器
- Kubernetes: 1.29 或更高版本
- 您的集群调度器必须支持在同一网络域内放置多个 Pod,以运行多主机推理
- 推荐使用 Kubernetes v1.33.0+ 以获得完整的 Sidecar 初始化容器支持 (restartPolicy: Always)。如果使用 Kubernetes v1.28.x 或更低版本,Pod 可能会因 Sidecar 支持不完整而卡在 Init:0/1 状态。
- 近几代数据中心级加速器
- AMD MI250X 或更新型号
- Google TPU v5e, v6e 及更新型号
- NVIDIA L4, A100, H100, H200, B200 及更新型号
- 高速节点间网络
- 加速器专用
- AMD Infinity Fabric, InfiniBand 网卡
- Google TPU ICI
- NVIDIA NVLink, InfiniBand 或 RoCE 网卡
- 主机及南北向流量
- 高速(100Gbps+ 聚合吞吐量)数据中心网卡
- 加速器专用
- 主机
- 每台机器 80 个以上 x86 或 ARM 核心
- 500GiB 或更多内存
- PCIe 5+
较旧的配置可能可以运行(尤其是稍旧的加速器),但测试属于尽力而为性质。
(可选)vLLM 容器镜像
llm-d 提供了衍生自 vLLM 上游的容器镜像,这些镜像已在受支持的硬件上经过测试,并安装了所有必要的优化库。若要使用您自己的镜像进行构建和部署,您应当集成:
- 通用
- vLLM: 0.10.0 或更高版本
- NIXL: 0.5.0 或更高版本
- UCX: 0.19.0 或更高版本
- NVIDIA 专用
- NVSHMEM: 3.3.9 或更高版本
llm-d 指南期望 vLLM 镜像遵循一系列惯例:
- 通用
- 必须至少有一个兼容 vLLM 的 Python 版本(3.9 到 3.12)
- 我们推荐至少 3.10+
- 必须捆绑所需的系统库
LD_LIBRARY_PATH必须包含 vLLM 运行所需的所有系统库
PATH必须包含 vLLM 二进制文件,且直接调用vllm应当以正确的 Python 环境(如虚拟环境)启动- 默认镜像命令(或未指定时的 entrypoint)应以服务配置启动 vLLM,并接受额外参数
- 带有
args的 Pod 应当能看到传递给 vLLM 的所有参数 - 带有
command: ["vllm", "serve"]的 Pod 应当覆盖任何镜像默认设置
- 带有
- 必须至少有一个兼容 vLLM 的 Python 版本(3.9 到 3.12)
- 缓存
- 默认编译缓存目录环境变量应位于
/tmp/cache/compile/<NAME>下的共享根路径- 例如:设置
VLLM_CACHE_ROOT=/tmp/cache/compile/vllm以确保 vLLM 编译到临时目录 - 未来版本的 vLLM 将建议将 Pod 卷挂载到
/tmp/cache,以减轻某些缓存因重启而失效的问题。
- 例如:设置
- 不要硬编码模型缓存目录和模型缓存环境变量
- 未来版本的 llm-d 将提供 vLLM 模型加载的惯例
- 默认编译缓存目录环境变量应位于
- 硬件
- 遵循您硬件生态系统的最佳实践,包括:
- 预期从标准主机位置挂载硬件特定的驱动程序和库
- 内核的提前(AOT)编译
- NVIDIA 专用
LD_LIBRARY_PATH包含/usr/local/nvidia/lib64目录,以便 Kubernetes GPU operator 注入合适的驱动程序
- 遵循您硬件生态系统的最佳实践,包括:
(可选)为多主机推理安装 LeaderWorkerSet
LeaderWorkerSet (LWS) Kubernetes 工作负载控制器专门用于部署服务工作负载,其中每个副本由分布在多个主机(特别是加速器节点)上的多个 Pod 组成。llm-d 默认使用 LWS 进行多主机推理部署,以实现 Rank 到 Pod 的映射、拓扑感知放置(以确保最佳加速器网络性能),以及全有或全无(all-or-nothing)的故障和重启语义,以便在节点或加速器故障时进行恢复。
在使用 LWS 部署 llm-d 指南时,请参考 LWS 安装指南 安装 0.7.0 或更高版本。
在主流基础设施提供商上安装
以下文档描述了针对集群基础设施提供商经过测试的 llm-d 设置,以及会影响模型服务器访问加速器方式的特定部署设置。
- Azure Kubernetes Service (AKS)
- DigitalOcean Kubernetes (DOKS)
- Google Kubernetes Engine (GKE)
- OpenShift (OCP), OpenShift on AWS
- minikube(用于单机开发)
这些提供商配置会定期进行测试。
在继续之前,请遵循特定提供商的文档,确保您的 Kubernetes 集群和硬件已正确配置。
其他提供商
为了将新的基础设施提供商添加到我们的主流支持路径中,我们要求提供以下支持:
- 关于配置平台以支持一个或多个主流路径指南的文档
- 为指南贡献适当的配置,以处理提供商特定的差异
- 验证受支持指南的自动化测试环境
- 至少有一名有记录的平台维护者,负责回应 GitHub issue,并可在 llm-d Slack 频道
#sig-installation中进行定期讨论。
内容来源
此内容自动同步自 llm-d/llm-d 仓库 main 分支下的 guides/prereq/infrastructure/README.md。