数据面节点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这一行,不再报错。

posted on 2023-06-19 11:32  王景迁  阅读(54)  评论(0编辑  收藏  举报

导航