启动

Flags and Options

kubelet 的配置中主要有两部分

kubelet 在启动的时候,关闭了 cobra 默认的 FlagParsing ,而是在 Run 中自行解析,主要是为了能够实现重载和动态加载 KubeletConfiguration

  1. 首先通过 flagset.Parse 解析一遍所有输入的 args,这时候 kubeletFlags 和 KubeletConfiguration 都已经被初始化了
  2. 如果配置了 kubeletFlags.KubeletConfigFile 路径,则先从文件中载入配置,然后再从 args 中载入配置,这一步是为了配置向后兼容
  3. 如果配置了 kubeletFlags.DynamicConfigDir 则会启动动态的配置加载功能

总结一下

  1. kubeletFlags 中的配置都是从 flag 中解析得到,并且只解析一次
  2. KubeletConfiguration 的配置有三个来源,优先级是依次递增,其中 flag 的优先级是最高的,这是为了兼容性考虑,如果将 flag 丢掉,则可以只考虑文件的情况
    1. kubeConfigFile
    2. dynamicConfig
    3. flag

Run()

kubelet run 依赖两个参数