本人空间链接http://user.qzone.qq.com/29185807/blog/1460015727

源代码为k8s v1.1.1稳定版本号

kubelet代码比較复杂。主要是由于其担负的任务比較多。以下我们将慢慢的分析

1、main入口

k8s.io\kubernetes\cmd\kubelet\kubelet.go

依然是这样的风格的main

【原创】k8s源代码分析-----kubelet(1)主要流程

继续看app

NewKubeletServer 主要是一些參数的初始化

【原创】k8s源代码分析-----kubelet(1)主要流程

【原创】k8s源代码分析-----kubelet(1)主要流程

然后在后面也有一些flag參数的获取,就不贴图了。

2、进入KubeletServer.Run

代码比較长。其从整个Run代码来看,整个过程都是一个前期的准备工作。比方一些參数的准备。真正的执行还不是在这里。

【原创】k8s源代码分析-----kubelet(1)主要流程

上面的代码中,准备了一个KubeletConfig。这个是基本的配置參数

【原创】k8s源代码分析-----kubelet(1)主要流程

上面的代码中RunKubelet是下一个入口

【原创】k8s源代码分析-----kubelet(1)主要流程

上面图中的代码就简单了不做解释

 

3、 RunKubelet

代码太长,就截取当中比較重要的

func RunKubelet(kcfg *KubeletConfig, builder KubeletBuilder) error {

【原创】k8s源代码分析-----kubelet(1)主要流程

以上有个createAndInitKubelet,这个非常重要

我们看看先

【原创】k8s源代码分析-----kubelet(1)主要流程

从上面能够看到pc。有个NewMainKubelet

以下进入startKubelet

【原创】k8s源代码分析-----kubelet(1)主要流程

我们看到Kubelet.Run。这个才是真正的入口

 

4、Kubelet,真正入口

k8s.io\kubernetes\pkg\kubelet\ kubelet.go

4.1、NewMainKubelet

func NewMainKubelet(

【原创】k8s源代码分析-----kubelet(1)主要流程

dockerclient初始化

【原创】k8s源代码分析-----kubelet(1)主要流程

serviceLister 和nodeLister初始化(这个和前面几篇文章分析中的非常类似,详细里面就不再做分析了)

【原创】k8s源代码分析-----kubelet(1)主要流程

containerGC

imageManager

diskSpaceManager

statusManager

readinessManager

containerRefManager

volumeManager

oomWatcher

我们看到了这么多的manager

【原创】k8s源代码分析-----kubelet(1)主要流程

然后就是容器的类型,这里我们就看docker

再接着

【原创】k8s源代码分析-----kubelet(1)主要流程

【原创】k8s源代码分析-----kubelet(1)主要流程

containerManager

containerRuntime

podManager

runtimeCache

等等

 

我们如今回忆下就会豁然开朗。在k8s.io\kubernetes\cmd\kubelet\app\ 中主要是做一些參数的简单处理,详细的初始化事实上是在k8s.io\kubernetes\pkg\kubelet\ kubelet.go中的NewMainKubelet。其构建的模块数量之多,也是其功能强大之处。

 

4.2 func (kl *Kubelet) Run

真正的Run入口,这个是在之前的k8s.io\kubernetes\cmd\kubelet\app\中的startKubelet中运行的

【原创】k8s源代码分析-----kubelet(1)主要流程

我们看到了熟悉的

imageManager.Start()

cadvisor.Start()

containerManager.Start

【原创】k8s源代码分析-----kubelet(1)主要流程

还有

oomWatcher.Start

updateRuntimeUp

podKiller

statusManager.Start()

最后的kl.syncLoop(updates, kl)

 

 

 

 

龚浩华

qq 月牙寂 29185807

2016年4月7日

(版权声明:本文为作者原创,如需转载请通知本人,并标明出处和作者。

擅自转载的,保留追究其侵权的权利。

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2021-11-29
  • 2021-09-18
  • 2022-12-23
  • 2021-09-05
  • 2021-08-27
  • 2021-10-22
猜你喜欢
  • 2021-04-20
  • 2021-07-24
  • 2021-06-02
  • 2022-02-15
  • 2021-06-07
  • 2021-08-08
  • 2022-12-23
相关资源
相似解决方案