• 【kubelet 报错】Failed to activate service ‘org.freedesktop.systemd1‘: timed out


    问题

    CentOS 7.9 主机上部署了 k8s 1.21 集群。
    因为改配置,需要重启 kubelet 。大部分主机都能一秒重启完 kubelet ,不影响容器运行。
    但是在某个主机重启 kubelet 时,却一直阻塞无反应,然后报错超时。
    于是看 kubelet 日志,发现报错:
    请添加图片描述

    google 搜了下这个报错 org.freedesktop.systemd1 ,发现可能是 systemd 出问题了。
    于是看内核日志,发现几天前就有报错了:
    请添加图片描述

    报错表示 kubelet 收到了 QUIT 信号,因此不能正常工作。虽然容器还能继续运行,但重启 kubelet 就会失败。
    Started Session 日志可能是有用户登录,也可能是 cron 等系统进程引发的。
    但是看了监控,没人在这个主机上执行 kill 命令或什么奇怪命令。所以怀疑是 CentOS 或 k8s 的 bug 引发的。比如本来要发送 kill 信号给容器内 1 号进程,却发送给宿主机的 1 号进程。

    解决办法

    既然发现 systemd 不能正常工作,于是笔者重启主机,果然它自动恢复了。
    如果重启主机不管用,还有其它解决方案:

    • 手动修复 systemd 进程。google能找到少量这方面的资料,但是可靠性低,毕竟 systemd 进程托管了很多系统服务。如果修复 systemd 失败,可能导致问题更严重。即使修复 systemd 成功,也不确定所有系统服务是否正常。
    • 最坏的情况下,如果 systemd 不能恢复,那就重装操作系统,反正是 k8s 节点,能轻松迁移。

    问题复现

    选一台测试主机,尝试手动发送 SIGTERM 信号给 systemd 进程,没有反应。
    改为发送 QUIT 信号,果然能复现该问题。一堆 systemd 模块不能正常工作,连 reboot、shutdown 也不行。
    请添加图片描述

  • 相关阅读:
    【CSS】解决上层盒子遮挡下层图片点击事件的三种方法
    项目干系人管理
    济南建筑模板生产厂家有哪些?
    k8s~动态生成pvc和pv
    leetcode 27. 移除元素
    verilog--用于电路设计--1
    电脑技巧:27个Office使用小技巧,值得收藏
    CTF之PHP特性与绕过
    [数据结构-线性表1.2] 链表与 LinkedList<T>(.NET 源码学习)
    UE4 虚幻引擎 GitSourceControl源码解析
  • 原文地址:https://blog.csdn.net/qq_35952638/article/details/126670927