kubelet启动--命令行初始化

概述

kubelet命令行参数有177个,是kubernetes组件中配置项最多的。

kubelet的选项分为三类,一类是kubletFlags–(启动之后不能随时改变的,只能通过命令行配置,比如ip地址、路径等);另一类是kubeletConfiguration–(可以在启动之后进行修改,可以通过命令行设置或配置文件或者dynamic Kubelet config–configmap,通过命令行配置是DEPRECATED,一些选项只能通过配置文件设置–比如NodeStatusReportFrequency);最后是globalFlags–(只能通过命令行配置,比如日志级别、日志路径、版本)。

Taint Manager源码解析

taint manager是由pod和node事件触发执行,根据node或pod绑定的node是否有的noExcute taint,如果有则对node上所有的pod或这个pod执行删除。

上篇的node lifecycle controller中,如果启用了taint manager就会调用NewNoExecuteTaintManager对taint manager进行初始化。

在node lifecycle controller中定义了pod事件和node事件的handler,在启用taint manager时候还会将pod事件和node事件放入到taint manager里的nodeUpdateQueue和podUpdateQueue。

同时在node lifecycle controller中会启动一个goroutine 执行taintManager.Run(stopCh)。