RHEL下无Root模式创建Kind集群失败(已配置Delegate=yes)
无Root模式运行Kind失败的排查与解决(RHEL 8.6环境)
问题现象
执行kind create cluster时触发错误:
enabling experimental podman provider ERROR: failed to create cluster: running kind with rootless provider requires setting systemd property "Delegate=yes"
使用sudo kind create cluster可正常创建集群,但无Root模式始终报错。同时systemd用户服务存在加载异常:
systemctl --user status user@$(id -u).service
输出提示:Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing,但systemctl --user show user@$(id -u).service | grep Delegate显示Delegate=yes已配置。
环境信息
- OS:RHEL 8.6 (linux/amd64)
- Podman版本:4.0.2
- Kind版本:0.20.0
- systemd版本:239 (239-78.el8)
- 主目录挂载于NFS,已修改Podman的
storage.conf中runroot和graphroot路径至本地磁盘 - 已确认cgroup2启用并正确挂载,Podman无Root模式已激活
解决步骤
1. 修复systemd用户会话服务异常
由于systemd用户服务目录位于NFS挂载卷,导致会话服务无法正常初始化。执行以下操作重置用户会话:
loginctl terminate-user $(whoami) logout
重新登录后,检查用户服务状态确认异常消除:
systemctl --user status
2. 确保Delegate=yes配置全局+用户级双重生效
除已配置的/etc/systemd/system/user@.service.d/delegate.conf,在用户级别添加配置以规避NFS权限问题:
创建~/.config/systemd/user/user@.service.d/delegate.conf文件,写入:
[Service] Delegate=yes
重新加载用户级systemd配置:
systemctl --user daemon-reload
3. 验证cgroup控制器权限与Podman存储配置
- 检查当前用户的cgroup控制器权限,确保包含必要资源:
需输出包含cat /sys/fs/cgroup/user.slice/user-$(id -u).slice/cgroup.controllerscpuset cpu io memory hugetlb pids。 - 确认Podman的
storage.conf中runroot和graphroot指向本地磁盘(示例路径):
修改后重置Podman环境:[storage] runroot = "/var/tmp/podman-run-$(id -u)" graphroot = "/var/tmp/podman-storage-$(id -u)"podman system reset podman system restart
4. 重新创建Kind集群
先验证环境状态:
kind get clusters podman info | grep -i rootless
再执行集群创建命令:
kind create cluster
内容的提问来源于stack exchange,提问作者Walidou
相关产品推荐
相关产品推荐

