kubernets kubelet 源码分析

原文: https://www.huweihuang.com/kubernetes-notes/code-analysis/kubelet/kubelet-run.htmlhtml

1.kubelet 主要作了什么node

  1. NewMainKubelet主要用来构造kubelet结构体,其中kubelet除了包含必要的配置和client(例如:kubeClient、csiClient等)外,最主要的包含各类manager来管理不一样的任务。
  2. 核心的manager有如下几种:docker

    • oomWatcher:监控pod内存是否发生OOM。
    • podManager:管理pod的生命周期,包括对pod的增删改查操做等。
    • containerGC:对死亡容器进行垃圾回收。
    • imageManager:对容器镜像进行垃圾回收。
    • statusManager:与apiserver同步pod状态,同时也做状态缓存。
    • volumeManager:对pod的volume进行attached/detached/mounted/unmounted操做。
    • evictionManager:保证节点稳定,必要时对pod进行驱逐(例如资源不足的状况下)。
  3. NewMainKubelet还包含了serviceListernodeLister来监听servicenode的列表变化。api

  4. kubelet使用到的containerRuntime目前主要是docker,其中rkt已废弃。NewMainKubelet启动了dockershim grpc server来执行docker相关操做。
  5. 构建了podWorker来对pod相关的更新逻辑进行处理。

2.架构涉及流程图缓存

 

3.架构

未完待续code

相关文章
相关标签/搜索