kubelet用到的一些基本的数据类型

// 创建一个配置控制器

BootstrapKubeletConfigController(defaultConfig*kubeletconfiginternal.KubeletConfiguration,dynamicConfigDir string) {

     c := dynamickubeletconfig.NewController(defaultConfig, dir)

    // 读取默认配置,并启动一个goroutine来更新

    kc, err := c.Bootstrap()

     return kc, c, nil

}


kubeletconfig/Controller

// Controller管理同步动态Kubelet配置

Controller struct {

    defaultConfig *kubeletconfig.KubeletConfiguration    // 没有提供初始配置时候的默认配置

    pendingConfigSource chan bool     // 写入该信道以指示该配置源需要从API服务器同步

    configOk status.ConfigOkCondition      //  管理Node.Status.Conditions 中汇报的condition

    informer cache.SharedInformer       //  观看节点对象的通知者

    checkpointStore store.Store        //  将配置源的位置保留在存储层

}



kubernetes/pkg/util/config/mux

定义了用来处理合并的接口

有这个source的时候,就返回chan,没有的话就创建一个新的chan,监听在上面并返回。如果有新的内容从chan上面过来,则触发调用 Merge 方法。

kubernetes/pkg/util/config/Broadcaster

定义了一个更新的方法

broadcaster 维护了一组listener,在获得消息的时候进行依次通知

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Jenkins是一个开源的自动化服务器。通过Jenkins,可以通过自动化加速软件开发过程。Jenkins管理和...
    EricJonse阅读 705评论 0 1
  • IBM 物联网 (IoT) 专区 How to parse C programs with clang: A tu...
    baitu阅读 173评论 1 1
  • 近期研究了两个项目:一个是java的嗨购网上商城实战,一个是廖雪峰的blog python实战,对web开发框架有...
    swynner阅读 869评论 1 0
  • CmsWing学习与思考 分析方法: 先从src/config/route.js开始分析网站一开始访问contro...
    Purson阅读 309评论 0 0
  • 常见语法释疑1、“;” 此处的分号正确理解,一个完整语句。先执行分号前语句,再执行分号后。if date, ok ...
    如风云淡阅读 169评论 0 0