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
相关推荐
我叫张小白。1 小时前
Docker核心命令
运维·docker·容器
一只积极向上的小咸鱼2 小时前
Codex MCP 与 Skills 跨 Docker 共享问题总结与后续规范
运维·docker·容器
小小龙学IT2 小时前
Go语言后端开发实战指南:构建高性能云原生服务
前端·云原生·golang
qq_452396232 小时前
第一篇:《Kubernetes 是什么?为什么它是云原生基石?》
云原生·容器·kubernetes
sbjdhjd10 小时前
Redis 主从复制、哨兵高可用与 Cluster 集群部署实验手册
运维·前端·redis·云原生·开源·bootstrap·html
ggaofeng11 小时前
glusterfs如何在k8s中使用
云原生·容器·kubernetes·glusterfs
暮云星影11 小时前
个人总结 搭建Docker监控
docker·容器·grafana·prometheus
IT策士12 小时前
第49篇 k8s之服务网格入门:Istio 简介
容器·kubernetes·istio
张忠琳15 小时前
【client-go v0.36.1】LeaderElection 深度分析(上篇)— 模块定位、结构、LeaderElector 核心逻辑
云原生·kubernetes·client-go·leaderelection