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

Rootless模式运行k3s服务正常但Pod持续Pending如何解决

问题根因

核心故障是k3s内置containerd的fuse-overlayfs存储快照器初始化失败,日志明确报错系统PATH内找不到mount.fuse3可执行文件。该问题导致k3s agent组件无法正常启动,控制平面节点始终无法完成注册,集群没有可用的节点承载Pod调度,所有Pod因此长期卡在Pending状态。日志里的metrics接口503、控制节点不存在等报错,都是该核心问题引发的连带异常,不是根因。

修复方案

二选一即可,优先选方案1,存储性能更好。

  • 方案1:安装缺失依赖,启用fuse-overlayfs(推荐)
    1. 先停当前运行的rootless k3s服务:systemctl --user stop k3s-rootless
    2. 安装对应系统的依赖包:
      • Debian/Ubuntu系执行:sudo apt install -y fuse3 fuse-overlayfs
      • RHEL/CentOS/Rocky/Alma系执行:sudo dnf install -y fuse3 fuse-overlayfs
      • Arch系执行:sudo pacman -S fuse3 fuse-overlayfs
    3. 验证依赖安装成功:执行which mount.fuse3,命令返回可执行文件路径即为正常
    4. 清理之前初始化失败生成的脏数据:rm -rf ~/.rancher/k3s/agent/containerd/
    5. 重启服务:systemctl --user start k3s-rootless
  • 方案2:切换为native快照器,无需额外依赖(性能略差)
    1. 停服务:systemctl --user stop k3s-rootless
    2. 编辑k3s-rootless的systemd unit配置,在ExecStart对应的k3s启动命令末尾加上参数--snapshotter=native
    3. 重载systemd配置:systemctl --user daemon-reload
    4. 清理旧的异常containerd数据:rm -rf ~/.rancher/k3s/agent/containerd/
    5. 启动服务:systemctl --user start k3s-rootless
结果验证

服务启动后等待1-2分钟,执行以下校验:

  • 执行k3s kubectl get nodes,返回的节点状态为Ready即说明节点注册成功
  • 执行k3s kubectl get pods -A,之前处于Pending状态的kube-system系统组件会逐步拉取镜像、进入Running状态

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:18:40