没有合适的资源?快使用搜索试试~ 我知道了~
k8s client-go源码分析 informer源码分析(3)-Reflector源码分析.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 66 浏览量
2022-07-09
23:04:08
上传
评论
收藏 964KB DOC 举报
温馨提示
试读
10页
k8s client-go源码分析 informer源码分析(3)-Reflector源码分析.doc
资源详情
资源评论
资源推荐
k8s client-go 源码分析 informer 源码分析(3)-Reflector 源码分析
k8s client-go k8s informers 实现了持续获取集群的所有资源对象、监听集群的资
源对象变化功能,并在本地维护了全量资源对象的内存缓存,以减少对 apiserver、对 etcd
的请求压力。Informers 在启动的时候会首先在客户端调用 List 接口来获取全量的对象集合,
然后通过 Watch 接口来获取增量的对象,然后更新本地缓存。
k8s client-go 源码分析 informer 源码分析(3)-Reflector 源码分析
1.Reflector 概述
Reflector 从 kube-apiserver 中 list&watch 资源对象,然后将对象的变化包装成 Delta 并将其
丢到 DeltaFIFO 中。简单点来说,就是将 Etcd 的对象及其变化反射到 DeltaFIFO 中。
Reflector 首先通过 List 操作获取全量的资源对象数据,调用 DeltaFIFO 的 Replace 方法全
量 插 入 DeltaFIFO , 然 后 后 续 通 过 Watch 操 作 根 据 资 源 对 象 的 变 化 类 型 相 应 的 调 用
DeltaFIFO 的 Add、Update、Delete 方法,将对象及其变化插入到 DeltaFIFO 中。
Reflector 的健壮性处理机制
Reflector 有健壮性处理机制,用于处理与 apiserver 断连后重新进行 List&Watch 的场景。
也是因为有这样的健壮性处理机制,所以我们一般不去直接使用客户端的 Watch 方法来处
理自己的业务逻辑,而是使用 informers。
Reflector 核心操作
Reflector 的两个核心操作:
(1)List&Watch;
(2)将对象的变化包装成 Delta 然后扔进 DeltaFIFO。
informer 概要架构图
通过下面这个 informer 的概要架构图,可以大概看到 Reflector 在整个 informer 中所处的
位置及其作用。
书博教育
- 粉丝: 1
- 资源: 2837
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0