美文网首页
深入剖析Kubernetes笔记2

深入剖析Kubernetes笔记2

作者: 文茶君 | 来源:发表于2021-06-16 14:59 被阅读0次

所谓 Informer,其实就是一个带有本地缓存和索引机制的、可以注册 EventHandler 的 client。它是自定义控制器跟 APIServer 进行数据同步的重要组件。
更具体地说,Informer 通过一种叫作 ListAndWatch 的方法,把 APIServer 中的 API 对象缓存在了本地,并负责更新和维护这个缓存。
其中,ListAndWatch 方法的含义是:
首先,通过 APIServer 的 LIST API“获取”所有最新版本的 API 对象;然后,再通过 WATCH API 来“监听”所有这些 API 对象的变化。而通过监听到的事件变化,Informer 就可以实时地更新本地缓存,并且调用这些事件对应的 EventHandler 了。

Informer 使用了 Reflector 包,它是一个可以通过 ListAndWatch 机制获取并监视 API 对象变化的客户端封装。
Reflector 和 Informer 之间,用到了一个“增量先进先出队列”进行协同。而 Informer 与你要编写的控制循环之间,则使用了一个工作队列来进行协同。
在实际应用中,除了控制循环之外的所有代码,实际上都是 Kubernetes 为你自动生成的,即:pkg/client/{informers, listers, clientset}里的内容。
而这些自动生成的代码,就为我们提供了一个可靠而高效地获取 API 对象“期望状态”的编程库。

请思考一下,为什么 Informer 和你编写的控制循环之间,一定要使用一个工作队列来进行协作呢?
Informer 和控制循环分开是为了解耦,防止控制循环执行过慢把Informer 拖死

一个FIFO可能会support多个controller,所以controller层面的业务逻辑retry不能放在FIFO而是得有独立的retry queue。同时work queue可以用来实现backoff on error等业务逻辑,而这些逻辑不适合放在FIFO中

相关文章

  • 深入剖析Kubernetes笔记2

    所谓 Informer,其实就是一个带有本地缓存和索引机制的、可以注册 EventHandler 的 client...

  • 深入剖析Kubernetes笔记

    深入理解docker镜像 容器的本质是一种特殊的进程Namespace 的作用是“隔离”,它让应用进程只能看到该 ...

  • kubernetes简介

    前言: 本文主要参考张磊大神的深入剖析 kubernetes,文章很有深度,把阅读笔记整理下来。 基本概念 ku...

  • 深入剖析Kubernetes

    容器,其实是一种特殊的进程而已。很多人会把Docker项目称为轻量级虚拟化技术的原因,实际上就是把虚拟机的概念套用...

  • 《深入剖析Kubernetes》学习笔记 —— Custom R

    最近学习张磊的《深入剖析Kubernetes》,感觉 Kubernetes 编程范式确实优秀,这里总结一下。 1....

  • 第一本 深入剖析Kubernetes

    1. 书籍简介 深入剖析Kubernetes 极客时间(音视频付费) 作者:张磊 2. 阅读进度 开始阅读:202...

  • 深入剖析Kubernetes--1

    容器技术这样一个新生事物,完全重塑了整个云计算市场的形态。

  • 《深入剖析Kubernetes》读后感

    3月份在geekbang买了一份网络课程,书籍地址 https://time.geekbang.org/colum...

  • k8s-client-go源码剖析(一)

    简介:云原生社区活动---Kubernetes源码剖析第一期 有幸参与云原生社区举办的Kubernetes源码剖析...

  • 0 | 写在最前面

    此 k8s 文集,是本人在 极客时间 学习 张磊大佬,《深入剖析Kubernetes》的一些重要摘要和总结。如果大...

网友评论

      本文标题:深入剖析Kubernetes笔记2

      本文链接:https://www.haomeiwen.com/subject/nngmeltx.html