k8s中的工作负载是什么,都有哪几种类型的工作负载

我用最通俗、最贴合你环境、一看就懂 的方式,一次性把 K8s 工作负载(Workload) 讲透!

先回答最核心:什么是工作负载

一句话大白话

工作负载 = 让 K8s 帮你"托管运行程序"的方式

你告诉 K8s:

  • 我要运行几个副本
  • 挂了要不要自动重启
  • 需不需要固定名字/固定IP
  • 是不是每个机器都要跑一个

K8s 提供5 种标准工作负载,对应不同业务场景。


K8s 有哪 5 种工作负载?(必须记住)

我按你最常用 → 最少用排序:

1)Deployment(最常用、无状态)

适合:微服务、API、前端、Nginx、vLLM 大模型推理

  • 随便扩缩容
  • 挂了自动重启
  • 不保存数据
  • 名字随机
  • 随便调度到任何节点

你 90% 的业务都用这个!

2)StatefulSet(有状态)

适合:MySQL、Redis、Kafka、ES、ZooKeeper

  • 固定名字
  • 固定 DNS
  • 固定存储 PVC
  • 有序启动、有序删除

有数据、有身份的服务用它。

3)DaemonSet(每个节点跑 1 个)

适合:监控采集、日志采集、节点代理

比如你环境里的:

  • otel-agent
  • fluentbit
  • node-exporter
  • kube-proxy

特点:集群加一个节点,自动多一个 Pod;删节点,自动少一个。

4)Job(一次性任务)

适合:数据导出、备份、清洗、离线计算

  • 运行完就退出
  • 不长期运行
  • 成功完成就停止

5)CronJob(定时任务)

适合:每天备份、每小时报表、定时清理

  • 按时间自动执行 Job
  • 类似 Linux crontab

用你自己的环境举例子(你一看就懂)

复制代码
Deployment → 你的 vllm-qwen(大模型推理)
DaemonSet → otel-agent、fluentbit(每个节点都跑)
StatefulSet → Kafka、ES、MySQL
Job → 数据备份
CronJob → 每天凌晨清理日志

超级简单记忆法

长期运行、无状态 → Deployment

存数据、固定身份 → StatefulSet

每个机器必须跑一个 → DaemonSet

跑一次就结束 → Job

定时跑 → CronJob


最后一句最关键(面试必问)

工作负载 = K8s 管理 Pod 的不同"运行模式"

  • Deployment:托管无状态服务
  • StatefulSet:托管有状态服务
  • DaemonSet:托管节点全局组件
  • Job/CronJob:托管一次性/定时任务

总结(你只要记住这 5 个)

  1. Deployment
  2. StatefulSet
  3. DaemonSet
  4. Job
  5. CronJob
相关推荐
IT大白鼠7 分钟前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
阿里云云原生2 小时前
从 Inform 到 Operate:构建可持续运行的云成本巡检机制与 Mission 调度
云原生
bgy66663 小时前
从零上手 Docker,容器技术完整入门指南
运维·docker·容器
pride.li8 小时前
Docker教程-Docker安装与镜像配置
运维·docker·容器
bgy66668 小时前
Docker Swarm 容器编排实战指南
运维·docker·容器
再卷还是菜9 小时前
Cephfs总结及kubernetes+Cephfs的整合项目
云原生·容器·kubernetes
底层玩家老张9 小时前
数据库上K8s,运维为什么反而更累了?从StatefulSet到Operator的复盘
数据库·kubernetes·operator·数据库运维·架构选型
力江9 小时前
GitLab 私有化部署实战 —— 从 Omnibus 到 Docker 的踩坑之旅
docker·容器·gitlab
深念Y10 小时前
Docker 镜像体积从 110MB 降到 13MB 后端服务的瘦身
运维·docker·容器