数据面节点kubelet一直报错找不到静态Pod路径
k8s 1.19.0
问题现象
问题分析
pkg/kubelet/config/file_linux.go
startWatch方法
pkg/kubelet/kubelet.go
makePodSourceConfig函数
cmd/kubelet/app/options/options.go
AddKubeletConfigFlags函数
kubelet启动参数中--pod-manifest-path已是""
说明有别的地方设置了默认值为/etc/kubernetes/manifests
规避方法
mkdir -p /etc/kubernetes/manifests
解决方法
调试过程中发现管理面节点kubelet调用2次AddKubeletConfigFlags
第1次StaticPodPath是默认值空字符串
第2次StaticPodPath是”/etc/kubernetes/manifests”
pkg/kubelet/kubeletconfig/configfiles/configfiles.go
Load方法
加载/var/lib/kubelet/config.yaml(kubeadm init和join时生成)文件,里面有静态pod路径
数据面节点也有这个文件
无论是管理面节点还是数据面节点,kubelet启动参数里面默认带了参数--config=/var/lib/kubelet/config.yaml。
删除/var/lib/kubelet/config.yaml文件中staticPodPath这一行,不再报错。