问题描述 |
为Kubernetes集群添加新Node,kubelet启动失败,通过 journalctl -xe 命令查看错误信息如下:
[root@localhost ~]# journalctl -xe
--
-- Unit kubelet.service has begun starting up.
1月 24 08:07:52 localhost.localdomain systemd[8187]: Failed at step CHDIR spawning /usr/local/bin/kubelet: No such file or directory
-- Subject: Process /usr/local/bin/kubelet could not be executed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- The process /usr/local/bin/kubelet could not be executed and failed.
--
-- The error number returned by this process is 2.
1月 24 08:07:52 localhost.localdomain systemd[1]: kubelet.service: main process exited, code=exited, status=200/CHDIR
1月 24 08:07:52 localhost.localdomain systemd[1]: Unit kubelet.service entered failed state.
1月 24 08:07:52 localhost.localdomain systemd[1]: kubelet.service failed.
1月 24 08:07:52 localhost.localdomain systemd[1]: kubelet.service holdoff time over, scheduling restart.
1月 24 08:07:52 localhost.localdomain systemd[1]: start request repeated too quickly for kubelet.service
1月 24 08:07:52 localhost.localdomain systemd[1]: Failed to start Kubernetes Kubelet Server.
-- Subject: Unit kubelet.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit kubelet.service has failed.
--
-- The result is failed.
1月 24 08:07:52 localhost.localdomain systemd[1]: Unit kubelet.service entered failed state.
1月 24 08:07:52 localhost.localdomain systemd[1]: kubelet.service failed.
解决方案 |
报出这个错误之后,第一反应是 “/usr/local/bin/kubelet”文件不存在,命令无法执行,但是检查后确认kubelet路径正确,并且也存在。后来检查kubelet.service文件,发现配置了 “WorkingDirectory”:
[Service]
WorkingDirectory=/var/lib/kubelet
错误原因是没有创建 /var/lib/kubelet 目录,创建完目录后重新启动kubelet,启动成功。
mkdir -p /var/lib/kubelet