|NO.Z.00014|——————————|CloudNative|——|KuberNetes&书签.V14|——|报错处理.V03|kubelet无法启动排查|
报错处理四:
### --- 报错现象:kubelet无法启动排查
[root@k8s-master01 ~]# systemctl status kubelet
● kubelet.service - Kubernetes Kubelet
Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubelet.conf
Active: inactive (dead) since Thu 2021-07-15 19:25:09 CST; 1s ago
Docs: https://github.com/kubernetes/kubernetes
Process: 1518 ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_SYSTEM_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=0/SUCCESS)
Main PID: 1518 (code=exited, status=0/SUCCESS)
### --- 报错分析:
~~~ ——>先停止当前窗口的kubelet: systemctl stop kubelet
~~~ ——>新开一个窗口,输入tail -f /var/log/messages,敲20次回车,保持窗口清洁
~~~ ——>第一个窗口执行systemctl start kubelet , 然后立即在另一个窗口执行ctrl + c终止tail
~~~ ——>此时第二个窗口会报大量无法启动的日志,如下:
~~~ ——>Jan 19 21:53:42 k8s-node01 kubelet: F0119 21:53:42.995488 405 server.go:269] failed to run Kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
~~~ ——>可以看到F开头或者E开头的为错误日志,后面为错误日志。
~~~ 此处报错为kubelet和docker的cgroup类型不一样(你的报错可能不一样,需要自行查看错误信息),需要修改为一样的。


### --- 解决方案:
~~~ # 确认docker是否为systemd
~~~ 注:如果不是systemd,或者没有该文件,请创建该文件。
[root@k8s-node01 ~]# cat /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
[root@k8s-node01 ~]# rm -rf /var/lib/docker
[root@k8s-node01 ~]# systemctl daemon-reload
[root@k8s-node01 ~]# systemctl restart docker
~~~ # 通过docker info确认
[root@k8s-node01 ~]# docker info | grep Driver
Storage Driver: overlay2
Logging Driver: json-file
Cgroup Driver: systemd
~~~ # 修复kubelet
~~~ 将/etc/kubernetes/kubelet-conf.yml文件的cgroupDriver改成systemd
~~~ (要与docker的一致,无法docker的无法更改为systemd,请改为和docker的一样的)。
~~~ 然后执行(无论kubelet-conf.yml是不是systemd都要执行)
[root@k8s-node01 ~]# systemctl stop kubelet
[root@k8s-node01 ~]# systemctl daemon-reload
[root@k8s-node01 ~]# rm -rf /var/lib/kubelet/*
[root@k8s-node01 ~]# systemctl restart kubelet
~~~ # 再次查看即可恢复
[root@k8s-master01 ~]# systemctl status kubelet
● kubelet.service - Kubernetes Kubelet
Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubelet.conf
Active: active (running) since Thu 2021-07-15 19:25:25 CST; 5min ago
Docs: https://github.com/kubernetes/kubernetes
Main PID: 62868 (kubelet)
Tasks: 18
Memory: 72.3M
CGroup: /system.slice/kubelet.service
└─62868 /usr/local/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig --kubeconfig=/etc/kubernetes/kubelet.kubeconfig --config=/etc/kubernetes/kubele...
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库