本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
使用Alibaba Cloud Linux 3作为K8s节点,在扩容后有可能引起Pod初始化失败。本文主要介绍Alibaba Cloud Linux 3系统中Systemd导致Pod初始化失败的原因及解决方案。
问题描述
在Pod初始化过程中,扩容节点在刷新K8s相关的配置时调用的脚本执行了systemctl daemon-reload
命令,导致Pod初始化失败,报错cgroup
设置失败或cgroup.proc
文件不存在。
影响范围
Alibaba Cloud Linux 3系统中,Systemd的版本低于systemd-239-82.0.3.4.al8.2
。
问题原因
执行
systemctl daemon-reload
命令将重建所有的单元。当该操作与Pod初始化流程并发执行时会导致race
,从而引发dbus
通信失败或unit
文件找不到的问题。执行
systemctl daemon-reload
过程中未保存和未写入cgroup
中的进程ID与Pod初始化流程并发执行时,可能发生cgroup empty
事件,从而导致cgroup
被删除。
解决方案
升级Systemd至systemd-239-82.0.3.4.al8.2
及以上版本。
查看当前系统中Systemd版本。
rpm -q systemd
升级Systemd版本。
如需升级为其他版本,替换
systemd-239-82.0.3.4.al8.2.x86_64
为所需版本。sudo dnf upgrade -y systemd-239-82.0.3.4.al8.2.x86_64
重启系统使配置生效。
警告重启实例将导致您的实例暂停运行,这可能引发业务中断和数据丢失。因此,建议您在执行此操作之前备份关键数据,并选择在非业务高峰期进行。
sudo reboot
文档内容是否对您有帮助?