在notready的机器上查看日志

journalctl -f -u kubelet

可以看到关键报错:
Unable to update cni config: No networks found in /etc/cni/net.d

部署的时候,node节点上可能缺少文件,需从master机器上拷贝文件过来
在问题机器上执行

scp -r master:/etc/cni /etc/cni    #master为hostname,根据实际情况调整
systemctl daemon-reload && systemctl restart kubelet

重启后可以看到又有新的报错

kubelet.go:1370] Failed to start ContainerManager failed to initialize top level QOS containers: failed to update top level Burstable QOS cgroup : failed to set supported cgroup subsystems for cgroup [kubepods burstable]: Failed to find subsystem mount for required subsystem: pids

该问题是cgroup与systemd相关的错误,需要修改配置文件
有的K8S版本配置文件在:/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
还有的是:/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
根据实际部署版本查看配置文件位置

vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
#在ExecStart后加入 --feature-gates SupportPodPidsLimit=false --feature-gates SupportNodePidsLimit=false

在这里插入图片描述
随后再次重启kubelet服务

systemctl daemon-reload && systemctl restart kubelet

等待一会后,在master机器上查看node状态
如果再添加node的时候直接就发现报错了,则重新添加node,重新添加node之前,需要初始化node机器上的kubeadm,执行

kubeadm reset

这个操作同时可以解决以下问题:
[ERROR FileAvailable–etc-kubernetes-manifests-kub、[ERROR Port-10250]: Port 10250 is in use

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐