client-go概述

先来看下官方的描述: Client-go是Kubernetes官方提供的Go语言客户端库,旨在帮助开发者与Kubernetes API交互。它封装了与Kubernetes API服务器通信的底层细节,使开发者能够更加关注业务逻辑的实现,而不用过多关注通信细节。

所以可以用下面的图来描述:

第一版: 20240229230703

推导优化

上面有什么问题呢?

  1. 事件过多,需要去重。
  2. 削峰填谷。

第二版: 20240229230621

  1. 需要反复查询某些对象资源:比如在事件hander中涉及到反查相关对象资源。
  2. 每次查询都直接请求k8s,导致k8s负载过高。

第三版:

20240229230524

client-go真实组件

最后来看一下client-go的实际的是怎样组成的:

20240229230419