news 2026/1/26 7:13:20

【Kubernetes】以LOL的视角打开K8s的工作负载

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Kubernetes】以LOL的视角打开K8s的工作负载

前言

Kubernetes(简称K8s)作为云原生时代必须要掌握的一门技术,其整个体系还是比较庞大的。但是其实用一段时间你就会发现,在整个庞大的K8s体系中,最主要承载承载业务的还是五大工作负载,即Deployment、Daemonset、StatefulSet、Job和CronJob,其余的像service,configmap,pvc都是为这五大工作负载添砖加瓦的。 另外我还发现在K8s体系复杂的同时,同样体系复杂的MOBA游戏《英雄联盟》(简称LOL)却受众广泛,休息时有很多同事都是在看LOL相关的视频。 于是为了帮各位想要入门K8s的“最强王者”更好的理解K8s的核心:五大工作负载,我为各种抽象的K8s工作负载在LOL中找了一个同样表现或者起同样作用的英雄,让各位最强王者能从LOL出发,更好的理解K8s的五大核心工作负载。


🚀1. Deployment (部署) - 无状态应用的智慧管家

👉核心功能

Kubernetes 中最常用、最核心的工作负载。它像一个精明的管家,专门负责部署和管理无状态应用(如Web服务器、API微服务)。它的超能力在于声明式的滚动更新和优雅回滚——只需修改镜像版本,它就能自动、平滑地逐步替换旧Pod实例,万一新版本有问题,一键就能秒回旧版。它还通过副本数(Replicas)设定,确保应用始终有指定数量的健康副本在运行,自动修复“不健康”的Pod,是高可用的基石。

💡典型场景:你的网站前端、RESTful API服务、无状态微服务。

💡对应的LOL英雄:盖伦

  1. 盖伦是LOL入门会最先接触到的英雄(3个初始免费英雄之一),你可能没玩过沙皇/阿罗拉/厄斐琉斯,但你一定玩过这个“大宝剑”;而Deployment也是几乎所有K8s入门教程都会拿来举例的工作负载,比如拿deployment起一个nginx镜像,而真正用上k8s之后,你也会发现,你的集群里面可能没有Job/CronJob等,但deployment是基本上一定会有的
  2. 盖伦什么都有,回血、沉默、伤害、强化、AOE、斩杀,Deployment也是什么功能都包含,但它又不是专门为了某一项功能而生的。

🧠2. StatefulSet (有状态副本集) - 秩序严谨的数据管理者

👉核心功能

当你的应用需要持久化数据稳定标识时(比如数据库、消息队列),StatefulSet就是你的不二之选。它与Deployment的关键区别在于秩序唯一性。它为每个Pod提供唯一且固定的名称(如mysql-0, mysql-1)、稳定的网络标识(DNS记录)以及专有的持久化存储卷。扩缩容(增加或减少副本)时,它会严格遵守顺序,优雅地一个接一个操作,完美保障集群化有状态应用的数据安全和启动顺序。

💡典型场景:MySQL集群、Redis集群、Kafka、ZooKeeper、Etcd。

💡对应的LOL英雄:邪恶小法师 · 维迦

  1. 核心被动技能是【超凡邪力】,通过用Q技能补刀或击杀英雄,永久性地增加自己的法术强度。这个法强值是他的“状态数据”,会随着时间持久化并不断增长,绝不会因为回城或死亡而重置。Statefulset也是一样,它里面的数据不会随着pod的重启而消失。

🔌3. DaemonSet (守护进程集) - 每个节点上的忠实哨兵

👉核心功能

DaemonSet 确保集群中的每一个节点(或符合标签选择器的节点)上都运行一个你指定的Pod副本。就像一个忠诚的哨兵,节点加入集群时,它会自动部署;节点离开时,它也会自动清理。它非常适合运行那些需要与节点本身深度绑定的基础架构服务,这些服务需要感知节点并为节点提供功能,而不是为用户业务提供服务。

💡典型场景:日志收集代理(Fluentd)、节点监控组件(Node Exporter)、网络插件(Calico)、安全代理。

💡对应的LOL英雄:索拉卡

索拉卡的大招可以给地图上的所有的己方英雄回血,而DaemonSet也是强制在集群中的每个节点都会有一个pod,都主打一个“全局控制”,“雨露均沾”,确保每一个节点都能有一个服务实例在运行。


⏳4. Job (任务) - 使命必达的一次性行者

👉核心功能

Job 负责创建一个或多个Pod来执行一个一次性任务(Task),而不是持续运行的服务。它的核心目标是确保任务成功完成。你定义一个任务(比如一个计算脚本),Job会启动Pod去执行,直到Pod内的容器成功退出(Exit Code为0)。如果任务执行失败,Job会根据配置尝试重试。一旦任务成功完成,Job及其创建的Pod就会功成身退,保留记录以供查询。

💡典型场景:执行数据库迁移脚本、运行一次性的数据分析任务、批处理作业。

💡对应的LOL英雄:像劫这样的刺客

LOL里面的刺客不擅长持续输出,他们会等技能齐全和时机成熟时一套技能看能不能切入敌方后排秒杀掉对手的C位,一套技能打完以后,他们会暂时丧失威胁,等下一次CD转好,又是他们伺机而动的时候。Job也是一个道理,等需要它时执行一次,然后就会潜伏,等待下次需要执行的时候才会再次被执行。


⏳5. CronJob (定时任务) - 精准的自动化闹钟

👉核心功能

CronJob 是基于时间调度的Job,相当于Linux系统中的Crontab。它让你可以用熟悉的Cron语法(如 0 * * * *)来定义并周期性地运行Job。到了预定时间,CronJob控制器就会自动创建一个新的Job对象来执行任务。它是实现自动化运维周期性任务的利器,让你彻底从手动执行重复任务中解放出来。

💡典型场景:每天凌晨2点执行数据库备份、每小时发送一次系统健康报告、每周清理一次临时文件。

💡对应的LOL英雄:LOL这个游戏机制本身

LOL在游戏开始后,会在3路定期生成小兵,这些小兵的生成是一开始就设定好的,不会受场上英雄被击杀或者防御塔被拆掉等各种事件的影响而稳定定时运行。CronJob也是一样,不管其它工作负载工作情况怎么样,它都会按照设定好的时间或间隔,周而复始的自动执行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/25 15:55:21

day165—递归—最长回文子序列(LeetCode-516)

题目描述给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。示例 1:输入:s "bbbab" …

作者头像 李华
网站建设 2026/1/25 8:09:22

【课程设计/毕业设计】基于springboot的企业日报管理日报管理系统设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/25 22:37:22

回文排列 II:别再傻傻地全排列了,剪枝才是王道

回文排列 II:别再傻傻地全排列了,剪枝才是王道 大家好,我是 Echo_Wish。 今天咱们聊一道看起来是“字符串 + 回溯”的老题,但一不小心就会把 CPU 跑冒烟的经典问题—— 回文排列 II(Palindrome Permutation II)。 这道题我特别喜欢,因为它非常适合用来区分“会写代码”…

作者头像 李华
网站建设 2026/1/25 7:35:05

【2026年-03期】Collaborative evolution between AI and humans

这是一幅关于 AI 与人类协作进化的逻辑全景图,它梳理了从 AI 技术迭代到人类能力重塑,再到二者形成新协作模式的完整逻辑链条。AI 演进与人类能力的底层逻辑AI 演进的双轮驱动AI 演化速度:从 GPT-3 → GPT-4 → GPT-5,模型能力不断…

作者头像 李华
网站建设 2026/1/25 0:10:25

边界之内:为何高维内插无法催生下一次科学革命?

在一个被大数据和人工智能的承诺所笼罩的时代,一种信念日益深入人心:只要有足够的数据和强大的算法,我们就能自动解锁自然界最深邃的奥秘。机器学习模型在蛋白质折叠、材料发现和气候预测等领域取得的惊人成就,似乎都在为这一愿景…

作者头像 李华