当前位置:网站首页 > C++编程 > 正文

kubectl查看日志命令(kubectl 查看configmap)



云原生之kubernetes实战部署Octant开源可视化k8s管理平台_kubelet

而newSourceApiserverFromLW则是一种通过Watch API监听单个API对象状态变化的方式。相对于Informer,newSourceApiserverFromLW可以避免定期获取整个API对象列表的网络带宽和计算资源浪费,并且可以只监听特定的API对象的状态变化,从而降低系统的复杂度和开销。

  • kubelet.go中初始化结构体
  • 监听三种数据来源,分别是api、file、http
  • channel函数会创建监听
  • ChannelWithContext创建goroutine执行listen

2.2.初始化LIST&WATCH(这里是通过api文件变化监听的,非informer)

  • 创建监听服务,如果node准备好了,则开启服务
  • 注册send函数,函数主要将apiserver传过来的数据重新组装后传给后续使用
  • run函数开始触发ListAndWatch函数
  • 函数中会触发watch执行

2.3.watch开始执行,收到数据后进行验证(这里是通过api文件变化监听的,非informer。虽然informer的代码也会走到这里,但是还是有区别的)

  • add/update/delete虽然触发的函数不一样,但是执行流程都类似的。
  • 先把这个数据更新/添加/删除在本地的缓存中。
  • 然后遍历所有的已存在的pod数据,然后执行上面流程2中的send函数。
  • 把所有pod数据通过send函数推送到一个podList后整体推送到chan管道
  • 这次的watch就结束了。等待下次变化

3.上面都是推送的流程,下面开始接收的流程。

  • 在创建list&watch的时候,执行channel函数,为每一个来源初始化一个管道。同时会触发协程执行listen函数。同时监听这个管道,并返回给流程2.1
  • 通过流程2.1中的send函数,最终数据会在这个channel管道中接收到。然后在liseten中执行
  • 执行过交给merge函数
  • 接收到数据首先判断来源是否已经注册了
  • 验证podList是需要更新还是删除还是调解等(流程4.2)
  • 将数据推送到kubelet监听的chan管道中

4.2 判断pod

  • 取出老的pod信息
  • 注册函数updatePodsFunc
  • 用oldPods拿到老pod的数据,同时清空pods数据(通过直接创建一个新的清除旧的)
  • 执行函数
  • 遍历pod,如果annotations注解为空,初始化,并且赋值来源
  • 过滤oldpods,如果oldpods没有这个pod信息,则代表是添加。并且把这个pod信息添加到pods里
  • 如果有这个pods信息,则存入pods里(这里为了后续判断是否这个pod被删除了.oldpods存在,pods不存在,则是删除)
  • 验证这个pod需要进行什么类型的处理(流程4.3)
  • 遍历新的pods数据(上上行说的),如果有oldPods存在的,但是pods不存在的。则是代表删除了
  • 将所有数据重新组装返回

4.3检查pod如何处理

  • 先检查这个pod和老的pod的spec、labels、DeletionTimestamp、DeletionGracePeriodSeconds、Annotations是否有变化,如果有变化,则需要进行更新处理,说明配置文件变了
  • 如果没有变化,判断新老pod的status运行状态是否有变化,如果有变化,则是需要进行调解needReconcile
  • 如果pod的spec有变化,则要把老的pod信息更新成新的
  • 如果DeletionTimestamp不为nil,则代表删除。否则是更新

5.这时候kubelet的configCh管道就接受到上面推送来的信息了,根据状态进行每种类型的处理

到此这篇kubectl查看日志命令(kubectl 查看configmap)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 2258 ce跳线(tmc2208跳线)2026-02-08 12:18:08
  • hipc官网下载(hipaa官网)2026-02-08 12:18:08
  • can通讯接口(can通讯接口硬件)2026-02-08 12:18:08
  • c加加编程入门程序(c加加简单程序编写)2026-02-08 12:18:08
  • 锁表格怎么锁(excel表格怎么锁表)2026-02-08 12:18:08
  • std::ifstream头文件(c++ ifstream头文件)2026-02-08 12:18:08
  • dhcp自动获取 dns(dhcp自动获取ip地址和宽带拨号上网)2026-02-08 12:18:08
  • ngff接口和mini pcie(ngff接口和pcie接口)2026-02-08 12:18:08
  • conduct怎么读的(conduit怎么读)2026-02-08 12:18:08
  • consoling翻译(consolidation翻译中文)2026-02-08 12:18:08
  • 全屏图片