首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Kubernetes 部署AI应用的10个要点

Kubernetes 部署AI应用的10个要点

作者头像
用户11081884
发布2026-07-20 20:29:18
发布2026-07-20 20:29:18
140
举报

随着生成式AI(GenAI)在各行业的广泛应用,Kubernetes已成为部署AI工作负载的首选平台。本文将为您介绍在Kubernetes上成功部署AI应用的10个关键要点,帮助您应对高并发、资源密集和行为不透明等挑战。


01. 事件驱动:让 GPU 按需醒来

传统做法 vs 事件驱动

① 常驻 Pod → 24h 占用 GPU

② 请求到达 → Knative 0→1 冷启 <3s

③ 空闲 30s → 自动缩容到 0,电费 ↓ 90%

架构图

一键体验

代码语言:javascript
复制
# 安装 Knative + KEDA
kubectl apply -f https://github.com/knative/serving/releases/download/knative-v1.16.0/serving-crds.yaml
helm install keda kedacore/keda --namespace keda --create-namespace
# 部署 LLM 服务(Qwen-7B 示例)
kubectl apply -f https://raw.githubusercontent.com/yourrepo/knative-llm/main/qwen7b-kservice.yaml
# 发送事件触发扩容
hey -z 30s -c50 http://qwen7b.default.127.0.0.1.sslip.com

观察:kubectl get pods -w 将看到 Pod 数量随 RPS 实时变化。


02. 弹性扩缩:4 种自动器协同

自动器

触发维度

典型阈值

KEDA

队列长度 / Token 数

kafka lag > 1000

Knative QP

并发请求

30→60

VPA

CPU/内存历史

+20% 推荐

KServe

推理 QPS

>500 req/s

流量拆分示意图

一键配置

代码语言:javascript
复制
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: llm-keda
spec:
  scaleTargetRef:
    name: llm-deployment
  triggers:
  - type: prometheus
    metadata:
      serverAddress: http://prometheus:9090
      metricName: llm_queue_length
      threshold: '1000'

03. 可观测:让黑盒 LLM 说人话

三大支柱

  1. Log:Loki + Vector→结构化提示词
  2. Metric:Prometheus + Grafana→Token/s、P99 延迟、GPU 利用率
  3. Trace:OpenTelemetry + Jaeger→一次对话跨 7 个微服务的耗时

仪表盘截图

快速安装

代码语言:javascript
复制
helm install loki grafana/loki-stack --create-namespace--namespace loki
kubectl apply -f https://raw.githubusercontent.com/yourrepo/llm-observability/main/otel-collector.yaml

04. 资源调度:GPU 按需分配

场景

工具

效果

节点弹性

Karpenter

30s 弹出 A100 节点

队列优先级

Kueue

训练作业优先,推理作业兜底

GPU 碎片整理

NVIDIA GPU Operator

显存 40GB→利用率 95%

GPU 碎片前后对比


05. PromptOps:把提示词当代码管

Git 目录结构示例:

代码语言:javascript
复制
prompts/
├── qwen7b/
│   ├── v1.0.yaml
│   ├── v1.1.yaml
└── kustomization.yaml

Argo CD 自动同步 → KServe 生成新版本路由 → 影子流量 5% A/B 测试。


06. 影子部署:零风险上线新模型

Istio VirtualService 片段:

代码语言:javascript
复制
http:
- match:
  - headers:
      shadow:
        exact: "true"
  route:
  - destination:
      host: llm-v2
    weight: 100
- route:
  - destination:
      host: llm-v1
    weight: 95
  - destination:
      host: llm-v2
    weight: 0
    mirror: true        # 镜像流量,不影响用户

07. 自动化评估流水线

MLOps 管道一览:

代码语言:javascript
复制
Raw Prompts → Kubeflow Pipeline → 离线评估(BLEU、BERTScore)
               ↓
            人工标注平台 → 回流数据 → 再训练
               ↓
            MLflow / W&B 指标看板

Jenkinsfile 片段:

代码语言:javascript
复制
stage('Eval') {
  sh'kubectl create -f eval-job.yaml --wait'
  sh'python scripts/push_metric.py'
}

08. 漂移监控:Prompt & 模型双重守护

Evidently AI 配置:

代码语言:javascript
复制
fromevidentlyimportColumnMapping
fromevidently.reportimportReport
fromevidently.metric_presetimportTextEvalPreset

column_mapping = ColumnMapping(text_features=["prompt", "answer"])
report = Report(metrics=[
    TextEvalPreset(),
])
report.run(reference_data=ref, current_data=cur)
report.save_html("drift_report.html")

Grafana 侧通过 Webhook 接收「漂移分数 > 0.3」立即告警。


09. 资源调度:GPU 碎片与抢占

策略

实现方式

收益

GPU 共享(时间片)

NVIDIA MIG + K8s device-plugin

1 张 A100 → 7 实例

抢占式队列

Kueue + PriorityClass

低优任务被抢占,高优 10s 内启动

节点亲和

nodeSelector: gpu-type=a100

避免跨 NUMA 性能抖动


10. MLDevOps 文化:把 Everything as Code

全景图:

关键 Git 钩子:

代码语言:javascript
复制
pre-commit:
  - id: yaml-lint          # 检查 Prompt 模板
  - id: kubescape-scan    # 安全策略扫描
  - id: conftest           # OPA 策略验证

一键部署:30 分钟拥有生产级 AI 平台

代码语言:javascript
复制
# ① 创建本地 Kind 集群(带 GPU 支持)
kind create cluster --config kind-gpu.yaml

# ② 安装核心组件
helmfile apply -f helmfile.yaml   # 包含 Knative/KEDA/Prometheus/Loki/Jaeger

# ③ 发布第一个 LLM 服务
kubectl apply -f qwen7b-kservice.yaml
kubectl ksvc list

Helmfile 片段已上传至 https://github.com/yourrepo/ai-stack-helmfile,复制即可用。


总结:

云原生 + AI = Everything as Code 从事件驱动到影子部署,从 GPU 调度到 Prompt 版本化,Kubernetes 让生成式 AI 真正拥有生产级的弹性、可观测与自动化。 在Kubernetes上运行AI工作负载不仅可行,而且非常强大。通过采用合适的工具和实践,可以将提示词、模型和GenAI服务当作任何生产级软件组件来管理。拥抱云原生生态,让AI工作流与基础设施共同进化,将帮助您在AI应用部署中取得成功。

如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nicholas与Pypi 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01. 事件驱动:让 GPU 按需醒来
    • 架构图
    • 一键体验
  • 02. 弹性扩缩:4 种自动器协同
    • 流量拆分示意图
    • 一键配置
  • 03. 可观测:让黑盒 LLM 说人话
    • 三大支柱
    • 仪表盘截图
    • 快速安装
  • 04. 资源调度:GPU 按需分配
    • GPU 碎片前后对比
  • 05. PromptOps:把提示词当代码管
  • 06. 影子部署:零风险上线新模型
  • 07. 自动化评估流水线
  • 08. 漂移监控:Prompt & 模型双重守护
  • 09. 资源调度:GPU 碎片与抢占
  • 10. MLDevOps 文化:把 Everything as Code
  • 一键部署:30 分钟拥有生产级 AI 平台
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档