最新文章

Kubernetes 源码解析 - Informer

Kubernetes 源码解析 - Informer

上篇扒了 HPA 的源码,但是没深入细节,今天往细节深入。 开局先祭出一张图: 为什么要有 Informer? Kubernetes 中的持久化数据保存在 etcd中,各个组件并不会直接访问 etcd,而是通过 api-server暴露的 RESTful 接口对集群进行访问和控制。 资源的控制器(图中右侧灰色的部分)读取数据也并不会直接从 api-server 中获取资源信息(这样会增加 api-server 的压力),而是从其“本地缓存”中读取。这个“本地缓存”只是表象的存在,加上缓存的同步逻辑就是今天要是说的Informer(灰色区域中的第一个蓝色块)所提供的功能。 从图中可以看到 Informer 的几个组件: Reflector:与 api-server交互,监听资源的变更。 Delta FIFO Queue:增量的 FIFO 队列,保存 Reflector 监听到的资源变更(简单的封装)。 Indexer:Informer 的本地缓存,FIFO 队列中的数据根据不同的变更类型,在该缓存中进行操作。 Local Store: 上篇 提到了水平自动伸缩的控制器HorizontalController,其构造方法就需要提供 Informer。 //pkg/controller/podautoscaler/horizontal.go type HorizontalController struct { scaleNamespacer scaleclient.

翻译:多运行时微服务架构

翻译:多运行时微服务架构

这样文章通过Google翻译和人工逐字修改的方式完成的,某些位置也加上自己的理解。如有错误,请指出。 翻译这篇文章的目的其实是为了自己加深对微服务、分布式架构以及多运行时架构的理解。整篇文章从”战略“上分析了微服务”从古至今“解决的问题,以 …