zoukankan      html  css  js  c++  java
  • k8s源码分析之kubelet

    一、概述

    二、Kubelet对象创建过程:(pkg/kubelet/kubelet.go )

      NewMainKubelet 正如名字所示,主要的工作就是创建 Kubelet 这个对象,它包含了 kubelet 运行需要的所有对象,上面的代码就是各种对象的初始化和赋值的过程,这里只介绍几个非常重要的对象来说:

      • podConfig:这个对象里面会从文件、网络和 apiserver 三个来源中汇聚节点要运行的 pod 信息,并通过管道发送出来,读取这个管道就能获取实时的 pod 最新配置;
      • ServiceLister:能够读取 kubernetes 中服务信息;
      • nodeLister:能够读取 apiserver 中节点的信息;
      • diskSpaceManager:返回容器存储空间的信息;
      • podManager:缓存了 pod 的信息,是所有需要该信息都会去访问的地方;
      • runtime:容器运行时,对容器引擎(docker 或者 rkt)的一层封装,负责调用容器引擎接口管理容器的状态,比如启动、暂停、杀死容器等;
      • probeManager:如果 pod 配置了状态监测,那么 probeManager 会定时检查 pod 是否正常工作,并通过 statusManager 向 apiserver 更新 pod 的状态;
      • volumeManager:负责容器需要的 volume 管理。检测某个 volume 是否已经 mount、获取 pod 使用的 volume 等;
      • podWorkers:具体的执行者,每次有 pod 需要更新的时候都会发送给它;

       

  • 相关阅读:
    ycsb
    Tikv docker-compose go client
    Raft 协议
    kubectl 命令
    JAVA判断是否是微信内置浏览器,是否是在微信内打开
    IDEA设置默认maven配置
    JAVA中JDK1.8的LocalDateTime日期类的操作方法
    JAVA在JDK1.8中Stream流的使用
    Linux(Centos)部署Jenkins
    Linux(Centos)安装maven
  • 原文地址:https://www.cnblogs.com/chris-cp/p/7485007.html
Copyright © 2011-2022 走看看