博主vx: haitangyijiusu 。很高兴认识你!偶尔带huo,都是精挑细选信得过的产品,欢迎来支持,期待和您相遇! 

 

核心模块

Informer只要由如下几个模块组成:

  • Reflector
  • Informer
  • Indexer

其架构图如下:

Reflector

    通过上图,可以看到,Reflector内部实现了ListWatch机制,可以感知资源的变化,一个ListWatch只对应一种资源,包括k8s的内置资源,也可以是用户自定义的资源。当感知到资源的创建、更新、删除时,将资源放到Delta FIFO的队列里。

Informer

    Informer是我们要监听的资源的代码抽象,在Controller的驱动下运行,将Delta FIFO中的数据弹出,然后将数据传送给Indexer。同时Informer也会将数据分发到自定义的Controller中进行事件处理(步骤6)

Indexer

    从字面上理解,Indexer是索引器,就是Informer的LocalStore。而索引之于存储,就比如MySQL表上建立的索引,会使查询速度加快,重要性不言而喻。

参考资料

https://segmentfault.com/a/1190000022643082https://zhuanlan.zhihu.com/p/212579372?utm_source=wechat_timelinehttps://zhuanlan.zhihu.com/p/228534306https://blog.csdn.net/qq_42952272/article/details/104755305

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐