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

相關文章
相關標籤/搜索