本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
使用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
文檔內容是否對您有幫助?