Below you will find pages that utilize the taxonomy term “client-go”
February 15, 2023
kubernetes 之 client-go 之 informer 工作原理源码解析
"本文主要介绍有关 client go 架构实现原理,在整个client-go架构中有一个很重要的组件就是 informer,本节我们重点对其进行一些介绍。\nInformer 机制 采用 k8s HTTP API 可以查询集群中所有的资源对象并 Watch 其变化,但大量的 HTTP 调用会对 API Server 造成较大的负荷,而且网络调用可能存在较大的延迟。除此之外,开发者还需要在程序中处理资源的缓存,HTTP 链接出问题后的重连等。为了解决这些问题并简化 Controller 的开发工作,K8s 在 client go 中提供了一个 informer 客户端库,可以视其为一个组件。\n在 Kubernetes 中,Informer 可以用于监视 Kubernetes API 服务器中的资源并将它们的当前状态缓存到本地(index -\u0026gt; store) ,这样就避免了客户端不断地向 API 服务器发送请求,直接从本地即可。\n相比直接采用 HTTP Watch,使用 Kubernetes Informer 有以下优势:\n减少 API 服务器的负载:通过在本地缓存资源信 …"