我爱编程kubelet 理解

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

2018-05-09  本文已影响0人  shinwing

// 创建一个配置控制器

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,在获得消息的时候进行依次通知

上一篇 下一篇

猜你喜欢

热点阅读