LeaderWorkerSet 源码解读:控制器架构与 Executor/Planner 工作原理完全剖析
LeaderWorkerSet 源码解读控制器架构与 Executor/Planner 工作原理完全剖析【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lwsLeaderWorkerSet 是一个把一组 Pod 当作复制单元来部署的 Kubernetes 原生 API而它的核心引擎就是由控制器、Executor 与 Planner 组成的协调系统。这篇 LeaderWorkerSet 源码解读将带你从零看懂控制器架构深入剖析滚动更新中 Executor 如何执行动作、Planner 如何规划每一步帮助新手快速建立对这套调度机制的整体认知。先看整体控制器架构的四大成员LeaderWorkerSet 的控制平面由多个控制器协同工作它们各司其职共同完成Leader Worker 分组的完整生命周期管理LeaderWorkerSetReconciler主控制器负责 Leader StatefulSet、ControllerRevision 与 Headless Service 的创建和滚动更新是整个 LWS 的总调度室。Pod Controller监听 Leader Pod 的创建事件为每一个 Leader 动态创建对应的 Worker StatefulSet实现一 Leader 一 Worker 组的拓扑。Pod Webhook在 Pod 创建时注入标签与调度亲和性为分组调度如 Volcano 的 PodGroup做好准备。DisaggregatedSetReconciler在 DisaggregatedSet解耦集场景下协调多个 LWS 实例与多个角色Role其内部正是依赖 Executor 与 Planner 完成复杂的多角色滚动更新。主控制器的入口在 leaderworkerset_controller.go一次 Reconcile 会依次完成获取 LWS 对象 → 获取/创建 ControllerRevision → 计算滚动更新分区 → 用 SSA 更新 Leader StatefulSet → 协调 Headless Service → 更新状态。整个过程围绕以 StatefulSet 为复制单元、以 Revision 为版本依据展开。一次协调的完整流水线主控制器的协调流程可以概括为四个关键步骤版本管理通过 getOrCreateRevisionIfNonExist 保证每个 LWS 都对应一个 ControllerRevision检测到 Spec 变化时创建新 Revision作为滚动更新的版本基准。计算分区rollingUpdateParameters根据当前版本与目标版本计算出 partition 值决定这次更新哪几个副本。执行更新SSAWithStatefulset用 Server-Side Apply 更新 Leader StatefulSet并把 partition 写入滚动更新策略。收尾协调创建共享 Headless Service更新 Status并在更新完成后裁剪历史 Revision。上图展示了 Pod 创建的动态协作过程StatefulSet Controller 创建 Leader Pod → API Server 触发 Pod Webhook 注入 PodGroup 关联 → Pod Controller 侦测到 Leader Pod 后创建专属的 Worker StatefulSet → 再由 StatefulSet Controller 创建 Worker Pod。这条Sts → Webhook → Pod Controller的链路就是 LWS 复制单元得以成型的核心机制。Executor 工作原理滚动更新的执行引擎当 DisaggregatedSet 需要把多个角色的 LWS 滚动升级到新版本时就轮到 Executor 登场。它的核心实现在 executor.go包含两个阶段阶段一初始化滚动更新initRollingUpdate给每个旧版本 LWS 打上initial-replicas注解快照当前副本数作为后续比例排空的基线。按角色Role创建新版本 LWS副本数从 0 开始等待下一轮协调逐步扩容。检测角色增删detectRoleChanges把新增/移除的角色纳入更新范围。阶段二推进滚动更新ReconcileRollingUpdate先检查新版本是否稳定每个角色的 ReadyReplicas Replicas不稳定就等 1 秒再试避免过度扩容。调用 Planner 计算下一步动作ComputeNextStep。执行动作scaleUpNew扩容新版本scaleDownOld按新创建的优先排空策略缩容旧版本。值得注意的细节是排空时的**协同排空coordinated drain**逻辑executor.go当某个角色缩容到 0 时同一 Revision 下所有角色会一起归零保证一组 Pod作为一个整体被回收而不是留下孤立的 Worker。Planner 工作原理每一步该怎么做Planner 是一个纯函数式的规划器核心函数 ComputeNextStep 不接触 API Server只根据四个输入初始旧副本、当前旧副本、当前新副本、目标新副本和滚动更新配置计算出下一步应该把副本调整到多少。它的数学基础是线性插值把整个滚动更新理想化为 totalSteps 步每一步新版本按ceil(i * target / totalSteps)增长旧版本按floor(i * initialOld / totalSteps)排空。由于控制器是无状态的Planner 从当前观测到的副本数反推出进行到第几步再算出下一步目标。规划器的决策优先级在 planner.go 中清晰可见异常纠正如果当前旧副本超过初始值先纠正到合理范围。新版本到位如果新版本已达目标直接把旧版本全部排空。尝试扩容tryScaleUp在满足old new target maxSurge的前提下优先扩容新版本。比例排空tryProportionalDrain无法扩容时按比例缩容旧版本并保证不低于 maxUnavailable 约束。强制排空tryForceDrain兜底策略必要时为新版本腾出 surge 配额。其中还有一个防止孤儿组的保护逻辑applyOrphanPrevention如果某个角色要排空到 0 而其他角色还没准备好会强制保留至少 1 个副本避免 Leader 与 Worker 组被拆散。Executor 与 Planner 的协作闭环Executor 与 Planner 的分工非常清晰Planner 负责想Executor 负责做。每一轮协调中Executor 从集群读取真实状态交给 Planner 计算下一步再把计算结果翻译成对 LWS 的 Scale 操作经由 lws_manager.go 的Scale方法以 Patch 方式修改副本数并发出 ScalingUp / ScalingDown 事件。如此反复直到 Planner 判定滚动更新完成所有旧副本归零、新副本达到目标。这种无状态规划 有状态执行的设计带来两大好处一是控制器重启后可以从当前集群状态无缝恢复不需要额外记录中间步骤二是所有决策集中在一个纯函数里可以用 ComputeAllSteps 模拟整场滚动更新让测试变得异常简单可靠。总结理解 LWS 控制器的三句话控制器负责编排管版本、管 StatefulSet、管 Service是所有资源的大脑。Planner负责计算用线性插值模型把复杂的多角色滚动更新拆解为可执行的每一步。Executor负责执行读取规划结果安全地扩容新版本、排空旧版本并保证 Leader/Worker 组的完整性。读完这篇 LeaderWorkerSet 源码解读你已经掌握了控制器架构的骨架与 Executor/Planner 的工作原理。沿着 pkg/controllers 目录继续阅读各控制器的测试文件你会发现每个算法细节都有对应的测试用例是理解这套机制最好的活文档。【免费下载链接】lwsLeaderWorkerSet: An API for deploying a group of pods as a unit of replication项目地址: https://gitcode.com/gh_mirrors/lws2/lws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

告别鼠标点点点,BaiduPCS-Go 把百度网盘搬进命令行

告别鼠标点点点,BaiduPCS-Go 把百度网盘搬进命令行

告别鼠标点点点,BaiduPCS-Go 把百度网盘搬进命令行 【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go 你一定经历过这种抓狂:想从百度网…

2026/8/20 18:49:39 阅读更多 →
自选基金助手使用指南:上班族如何用Chrome扩展实时盯盘基金估值与收益

自选基金助手使用指南:上班族如何用Chrome扩展实时盯盘基金估值与收益

自选基金助手使用指南:上班族如何用Chrome扩展实时盯盘基金估值与收益 【免费下载链接】funds 自选基金助手是一款Chrome扩展,用来快速获取关注基金的实时数据,查看自选基金的实时估值情况 项目地址: https://gitcode.com/gh_mirrors/fu/fu…

2026/8/20 18:49:39 阅读更多 →
AI技能库 Skills Catalog for Codex:让AI代理秒变多面手的完整实战指南

AI技能库 Skills Catalog for Codex:让AI代理秒变多面手的完整实战指南

AI技能库 Skills Catalog for Codex:让AI代理秒变多面手的完整实战指南 【免费下载链接】skills Skills Catalog for Codex 项目地址: https://gitcode.com/GitHub_Trending/skills4/skills 「让AI帮我写代码」和「让AI像老员工一样干活」,中间隔…

2026/8/20 18:48:39 阅读更多 →

最新新闻

高速连接器设计挑战与56G MezzaWave方案解析

高速连接器设计挑战与56G MezzaWave方案解析

你有没有遇到过这样的场景:一个看似简单的信号传输问题,却让整个项目的交付延期了数周?问题可能出在某个不起眼的连接器上,它发热、信号衰减、或者在高频下性能急剧下降。在数据中心、高性能计算和5G通信这些追求极致速度和可靠性…

2026/8/21 21:02:43 阅读更多 →
存档被倒计时打断?Wand-Enhancer 免费拿满专业版功能

存档被倒计时打断?Wand-Enhancer 免费拿满专业版功能

存档被倒计时打断?Wand-Enhancer 免费拿满专业版功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 周日晚上 11:40,你正要…

2026/8/21 21:02:43 阅读更多 →
DDrawCompat 完整指南:让 DirectX 1-7 老游戏在现代 Windows 上流畅运行

DDrawCompat 完整指南:让 DirectX 1-7 老游戏在现代 Windows 上流畅运行

DDrawCompat 完整指南:让 DirectX 1-7 老游戏在现代 Windows 上流畅运行 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_…

2026/8/21 21:02:43 阅读更多 →
ORB-SLAM3 加权误差 马氏距离

ORB-SLAM3 加权误差 马氏距离

“加权误差”在优化中就是马氏距离的平方。下面解释它的定义、与卡方检验的关系,以及在 ORB-SLAM3 代码中的体现。 在 PoseOptimization 的代码里,你看到了这样的片段: cpp const float invSigma2 = pFrame->mvInvLevelSigma2[kpUn.octave]; e->setInformation(Eige…

2026/8/21 21:02:43 阅读更多 →
把《荀子》喂进 Transformer 后,XunziALLM 让这三件事变简单了

把《荀子》喂进 Transformer 后,XunziALLM 让这三件事变简单了

把《荀子》喂进 Transformer 后,XunziALLM 让这三件事变简单了 【免费下载链接】XunziALLM 项目地址: https://gitcode.com/gh_mirrors/xu/XunziALLM 读《荀子》读到「天行有常」卡住了?翻了十几处注疏,文言文语法还是抓不准&#xf…

2026/8/21 21:02:43 阅读更多 →
BETAFPV Configurator 控制器配置指南:LiteRadio 绑定 ELRS 接收机一次成功

BETAFPV Configurator 控制器配置指南:LiteRadio 绑定 ELRS 接收机一次成功

BETAFPV Configurator 控制器配置指南:LiteRadio 绑定 ELRS 接收机一次成功 【免费下载链接】BETAFPV_Configurator 项目地址: https://gitcode.com/gh_mirrors/be/BETAFPV_Configurator 刚拿到 whoop 和 LiteRadio 3 的你,按视频把电台和飞机配…

2026/8/21 21:01:43 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →