LLMOps大模型云原生部署落地实操:从零搭建可运行的环境

开始前需要准备什么

在动手之前,先确认你手头有这些资源,缺一不可:

  • 一台或多台Linux服务器(推荐Ubuntu 22.04或CentOS 7.9),每台至少8核CPU、32GB内存、一块支持CUDA的NVIDIA显卡(如A100、V100、RTX 3090)。
  • Kubernetes集群(版本≥1.24),可以使用kubeadm手动搭建,或者直接用云厂商的托管集群。
  • Dockerkubectl 已安装并配置好。
  • 已经下载好要部署的大模型文件(例如Llama 2或ChatGLM的权重),或准备好直接从Hugging Face拉取的网络环境。

如果你对Kubernetes基础不熟,建议先跟着官方文档搭一个单节点集群练手;
生产环境务必做高可用。

第一步:让Kubernetes节点识别GPU

要让Pod使用GPU,节点上必须安装NVIDIA驱动和nvidia-container-toolkit
SSH登录每一台GPU节点:

# 安装NVIDIA驱动(以Ubuntu为例)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
    && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
    && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
        sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

然后部署NVIDIA设备插件到集群:

kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.14.0/nvidia-device-plugin.yml

检查节点是否已识别GPU:

kubectl describe node <节点名> | grep -A 5 "Capacity"
# 输出中应包含 nvidia.com/gpu: 1 或更多

第二步:把大模型打包成推理服务镜像

用Python编写一个简单的推理API(这里用FastAPI + transformers),模型加载和推理代码略,注意设置环境变量MODEL_PATH
编写Dockerfile

FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

构建并推送到镜像仓库:

docker build -t your-registry/llm-inference:1.0 .
docker push your-registry/llm-inference:1.0

第三步:创建Kubernetes部署与服务

编写deployment.yaml,关键部分如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: llm-inference
spec:
  replicas: 2
  selector:
    matchLabels:
      app: llm-inference
  template:
    metadata:
      labels:
        app: llm-inference
    spec:
      containers:
      - name: inference
        image: your-registry/llm-inference:1.0
        ports:
        - containerPort: 8000
        resources:
          limits:
            nvidia.com/gpu: 1
        env:
        - name: MODEL_PATH
          value: "/models/llama-7b"
        volumeMounts:
        - name: model-storage
          mountPath: /models
      volumes:
      - name: model-storage
        persistentVolumeClaim:
          claimName: model-pvc

别忘了先创建PVC或使用HostPath(生产不推荐)。
然后暴露Service:

apiVersion: v1
kind: Service
metadata:
  name: llm-inference
spec:
  selector:
    app: llm-inference
  ports:
  - port: 80
    targetPort: 8000
  type: ClusterIP

如果想从集群外访问,再配一个Ingress,或者直接用NodePort。

应用资源:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

常见坑与排错

  • Pod一直Pending,Events显示“Insufficient nvidia.com/gpu”:确认节点已安装驱动和设备插件,且节点的GPU未被其他Pod占用。
  • Pod启动后CrashLoopBackOff:先看日志 kubectl logs ,多半是模型加载内存超限,调低resources.limits.memory或换小模型。
  • 请求超时/返回异常:检查Service是否匹配Pod标签,以及Ingress规则是否正确。

如何验证部署成功

用curl或Postman发送推理请求(假设Service IP为10.96.0.10):

curl -X POST http://10.96.0.10/ -H "Content-Type: application/json" -d '{"prompt":"介绍一下LLMOps"}'

返回格式应包含生成的文本。
也可以先用kubectl port-forward svc/llm-inference 8000:80在本地测试。

如果返回结果正常,说明整个LLMOps大模型云原生部署落地实操流程走通。
后续可以接入监控(Prometheus + Grafana)和自动伸缩(HPA)。

如果你在部署过程中遇到其他奇怪的问题,建议先检查节点CUDA版本与PyTorch镜像是否匹配,这是最多人踩的坑。

分享到:
上一篇
K8s DRA异构GPU调度多模型推理集群
下一篇
vLLM高并发推理住宅主机部署教程:从安装到压力测试
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意