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

kubelet用到的一些基本的数据类型_第1张图片
定义了用来处理合并的接口

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

kubelet用到的一些基本的数据类型_第2张图片

kubernetes/pkg/util/config/Broadcaster

kubelet用到的一些基本的数据类型_第3张图片
定义了一个更新的方法

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

kubelet用到的一些基本的数据类型_第4张图片

你可能感兴趣的:(kubelet用到的一些基本的数据类型)