You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes特定节点只读文件系统致Pod异常(ContainerCreating/Terminating)求助

问题分析与解决方法

根据报错信息和节点排查结果,特定节点(如node-2)的/var/lib/kubelet所在文件系统被挂载为只读模式,导致kubelet无法创建Pod相关目录,进而出现ContainerCreating/Terminating状态的Pod。

1. 验证节点文件系统状态

登录问题节点,执行以下命令确认文件系统状态:

  • 查看/var/lib/kubelet挂载点的读写属性:
mount | grep $(df -P /var/lib/kubelet | tail -n1 | awk '{print $1}')
  • 直接测试目录可写性:
touch /var/lib/kubelet/test-file && rm /var/lib/kubelet/test-file

若操作失败并提示"Read-only file system",则确认挂载点为只读状态。

2. 临时恢复读写权限并重启kubelet

尝试重新挂载文件系统为读写模式,然后重启kubelet:

# 重新挂载为读写
mount -o remount,rw $(df -P /var/lib/kubelet | tail -n1 | awk '{print $1}')

# 重启kubelet服务
systemctl restart kubelet

完成后观察Pod是否能正常启动。

3. 排查只读触发的根本原因

检查系统日志

查找文件系统转为只读的触发原因:

# 查看内核日志中的只读相关信息
dmesg | grep -i "read-only"

# 检查文件系统检查服务日志
journalctl -u systemd-fsck --since "yesterday"

常见触发原因包括:磁盘I/O错误、文件系统损坏、系统异常断电、磁盘空间耗尽。

检查磁盘健康与空间

  • 检查磁盘硬件健康状态:
smartctl -a /dev/<disk-device>  # 替换为实际磁盘设备名,如/dev/sda
  • 检查/var/lib/kubelet所在分区的空间使用情况:
df -h /var/lib/kubelet

4. 修复损坏的文件系统

若确认是文件系统损坏,需执行以下操作:

  1. 先卸载挂载点(需确保kubelet已停止):
systemctl stop kubelet
umount /var/lib/kubelet
  1. 执行文件系统检查与修复:
fsck -y /dev/<disk-device>
  1. 重新挂载并重启kubelet:
mount /var/lib/kubelet
systemctl restart kubelet

5. 节点后续处理

  • 若磁盘存在硬件故障,建议替换磁盘并重新配置节点。
  • 临时隔离问题节点,避免Pod被调度到该节点:
kubectl cordon node-2
  • 节点修复完成后解除隔离:
kubectl uncordon node-2

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:55:21