问题描述
问题刚开始是由pod启动失败,报错unable to ensure pod container exists: failed to create container for [kubepods burstable pod8a412f93-77e9-412c-9735-fd44dbb668e0] : dbus: connection closed by user 产生的,当时在ssh登录服务器的时候,ssh登录特别慢,差不多半分钟才登录成功。
解决步骤:
1.当时没有先查看ssh登录慢的问题,一直在解决pod启动失败的问题。所以一直在查 dbus: connection closed by user这个报错。查了很多都在说dbus服务有问题,我检查了一下dbus服务,状态是没问题的,然后查看系统日志里的dbus,有重大发现,确实有很多报错,看来dbus服务确实有问题。
2.继续查看这个报错
Failed to activate service 'org.freedesktop.login1': timed out
显示这个服务超时了,继续查资料,大意如下:
dbus的服务重启后,systemd-logind服务没有重启导致,可以查看systemctl status systemd-logind的状态,解决方法就是重启该服务 systemctl restart systemd-logind
3.重启了systemd-logind服务,使用journalctl -f -u dbus
查看日志,没有再出现报错。再次使用ssh远程连接,恢复正常了。ssh连接缓慢的问题解决了。看来查的这个资料还是有效果的。以后ssh登录特别慢的问题,可以尝试使用这个方法来解决了。但是pod的问题依然没有解决,还是一直在ContainerCreating创建容器的状态。
4.继续查资料:说node节点出现dbus:connection closed by user问题是因为kubelet(node服务)调用/var/run/dbus/system_bus_socket这个socket发现连接被关闭导致的。检查节点dbus服务是否正常systemctl status dbus。
当dbus服务由于某些异常发生重启,/var/run/dbus/system_bus_socket文件就会被重新创建,旧的socket文件会被删除,因此kubelet再往旧的socket发送数据,就会出现连接被关闭的报错。
5.解决方法:重启kubelet,服务就可以重新和新的dbus socket建立连接。查看Pod状态也正常了。
看来有些时候,还是重启能解决问题呀。