news 2026/5/7 15:47:53

【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/5/1 19:11:12

ARM Cortex-M 存储器系统中的栈存储

ARM Cortex-M 存储器系统中的栈存储 本文来自于我关于ARM Cortex-M 的存储器系统的系列文章。欢迎阅读、点评与交流~ 1、ARM Cortex-M 的存储器系统特性 2、ARM Cortex-M 存储器映射 3、ARM Cortex-M 存储器系统中的栈存储 文章目录ARM Cortex-M 存储器系统中的栈存储一、栈的基…

作者头像 李华
网站建设 2026/5/1 6:03:34

面向植物智能识别的实践:基于 YOLOv8 的罂粟目标检测系统工程化实现

面向植物智能识别的实践:基于 YOLOv8 的罂粟目标检测系统工程化实现 声明:本文项目仅用于植物识别算法研究、计算机视觉教学与农业科研场景,不涉及任何执法或现实打击行为。 一、问题引入:为什么“罂粟检测”是一个有价值的计算机…

作者头像 李华
网站建设 2026/4/25 0:50:16

5355355

5535555

作者头像 李华
网站建设 2026/4/22 22:33:51

用户画像增强的个性化意图识别技术

用户画像增强的个性化意图识别技术:让系统真正"懂"你的底层逻辑 一、引入与连接:为什么APP比你更懂自己? 清晨7点,你揉着眼睛拿起手机,新闻APP精准推送了"2024年徒步装备新品盘点"——刚好是你最近在研究的; 中午12点,外卖APP弹窗提醒"你常吃…

作者头像 李华
网站建设 2026/5/6 4:03:33

C++大模型SDK开发实录(三):流式交互协议SSE解析与httplib实现原理

目录 前言第一章:即时通信的基石——SSE协议解析1.1 为什么选择SSE?1.2 SSE数据格式 第二章:协议选型——SSE vs WebSocket2.1 轮询与WebSocket的局限2.2 技术特性对比 第三章:cpp-httplib的流式处理机制3.1 普通响应与流式响应的…

作者头像 李华
网站建设 2026/5/2 16:32:41

Linux Rootkit 手法解析(上):用户态的“隐身术”与检测思路

Linux Rootkit是一类针对Linux操作系统设计的恶意工具集,它通过多种方式隐藏自身和攻击活动,使得攻击者能够绕过安全防御机制,在受害主机上非法维持控制权限,因此常被喻为黑客的“隐身斗篷”。 面对这种高级威胁,了解…

作者头像 李华