这门课解决什么问题
Kubernetes 的 Informer 机制是整个控制器体系的核心骨架,但多数教程只停留在“调 client-go 库写个监听”的层面。这门课把 Informer 拆成 DeltaFIFO、Reflector、Indexer、SharedInformer 几个关键部件,带你在不依赖现成封装的前提下手工实现一遍核心流程。它解决的不是“怎么用 kubectl”,而是“当集群状态变更时,数据从 apiserver 到你的控制器内存里到底走了哪几步、为什么这么设计、卡住时怎么排查”。如果你写过自定义控制器却总觉得像在照抄模板,这门课就是用来补那块没讲透的底层逻辑。
适合什么基础、资料怎么配合练习
这显然不是入门课。你需要已经能独立写 Go,看过 k8s 基本对象,最好写过或至少读过简单的 controller 代码。资料里没有从零讲 Go 语法和 k8s 概念的部分,直接进入 DeltaFIFO 的创建和事件流转。建议的用法是:先把前两讲的 DeltaFIFO 新增与修改事件跟着敲一遍,不要只看;第三讲到第五讲的 Reflector 部分是难点,List 和 Watch 要分开理解,手工创建 Reflector 后从队列取值这一步建议自己改参数观察阻塞行为;第六讲的 Indexer 先弄懂它和普通 map 的区别再看代码。第七讲是练习课,把前面拼成一个简易 Informer,这一讲建议自己先写再对照。第八讲之后的 SharedInformer 和 processorListener 是进阶,理解了前面再碰会顺很多。整份资料更适合边看边在本地跑小段验证,而不是连续刷完。
学完能独立做什么
学完之后,你不一定能立刻上线生产级 operator,但应该能独立做几件具体的事:看懂 client-go 里 informers 包的源码结构,而不是把它当黑盒;在自定义控制器里合理选择用 SharedInformer 还是单独 Informer,并知道两者在事件分发上的差异;遇到“事件丢了”“重复处理”“内存涨”这类问题时,能定位到 DeltaFIFO、Reflector 还是 processor 哪一环。对于需要写 operator 或做平台层二次开发的人,这门课补的是底层判断力,不是简历上的一个词。
本课程是k8s基础速学3(永远不会更完)系列的子课程,由于比较重要,所以单列课程。本课程讲的是Informer的基本结构和原理+手撸部分功能。不是入门课,请确保
课程目录
* 第1讲:开张课、课程基本内容、DeltaFIFO创建
* 第2讲:DeltaFIFO手工调用之:新增和修改事件
* 第3讲:Reflector学习(1):手工创建ListWatch监听(List)
* 第4讲:Reflector学习(2):手工创建List&Watch监听(Watch)
* 第5讲:Reflector学习(3):手工创建Reflector和队列取值
* 第6讲:Reflector学习(4):初识indexer
* 第7讲:练习课:手工实现简单的Infomer
* 第8讲:SharedInformer深入(1): processorListener学习和使用
* 第9讲:SharedInformer深入(2): 手工模拟简单的SharedInformer
* 第10讲:SharedInformer深入(3): 加入ListWatch手工运行
* 第11讲:SharedInformer深入(4): 认识索引、手工调用
* 第12讲:SharedInformer深入(5): 索引集成到自己的Informer中
* 第13讲:快速理解SharedInformerFactory、半手写(上)
* 第14讲:快速理解SharedInformerFactory、半手写(下)






