Kubernetes informer controller 原理笔记

整理了一张思维导图,比较乱:

Informer-controller.png

我主要关注的是数据流(从 K8s client 获取数据到分发到自定义的 handler):

这里一共有两个队列:

  1. 从 K8s 中获取到的数据,缓存在 Queue 中,内容不区分类型的
  2. listener 中的 RingGrowing ,订阅前一个 Queue 中的数据,内容被封装成了各种 Notification

理解了两个队列之后,就好理解 WaitForCacheSync 函数,他阻塞到 Cache 同步完成,那么完成的标准是什么呢?

ListAndWatcher 中 List 成功之后,会替换掉 Queue 中的所有数据,首次的所有数据全部分发给 listener 中的 RingGrowing 队列,分发完成则认为是同步完成。


扩展:

First created: 2019-06-27 22:07:00
Last updated: 2021-11-15 Mon 10:18
Power by Emacs 27.1 (Org mode 9.4.4)