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
相关推荐
阿里云云原生3 小时前
阿里云 AgentTeams 7月第二周产品动态
云原生
CodexDave6 小时前
数据库连接池耗尽:排查顺序与三层兜底
服务器·前端·数据库·git·云原生·容器·kubernetes
java_logo7 小时前
ELK Docker Compose 部署指南:轻松搭建日志检索平台
elk·elasticsearch·docker·容器·kibana·logstash·轩辕镜像
ShallWeL7 小时前
Orin 上用 Docker 跑通目标检测功能
人工智能·目标检测·docker·容器
辰同学ovo8 小时前
用“舞台换景”讲清 Docker 的 Restart 与 Recreate
运维·docker·容器
Zhu7589 小时前
在k8s部署alist 3.62.0
云原生·容器·kubernetes
阿里云云原生1 天前
阿里云 Agent Native Cloud:让智能体成为企业原生的能力
云原生·agent
小码哥哥1 天前
云原生时代的企业AI知识库:从云生态融合到多云知识治理
人工智能·云原生
关关长语1 天前
Wsl解决MySQL容器跨域权限问题
mysql·docker·容器
Geek-Chow1 天前
Connecting kubectl to a Private EKS Cluster Over an Internal Domain
kubernetes·k8s·aws