Rook CephFS PVC 在禁用认证时卡在 Pending 状态问题解析
问题背景
在使用 Rook 部署的 Ceph 集群中,当管理员尝试通过修改 Ceph 配置文件来禁用客户端认证时,可能会遇到 CephFS 类型的 Persistent Volume Claim (PVC) 无法正常创建的问题。具体表现为 PVC 长时间处于 Pending 状态,并报错"Operation not supported"。
问题现象
当在 Ceph 配置中将以下三个认证参数设置为 none 时:
auth_client_required = none
auth_cluster_required = none
auth_service_required = none
创建 CephFS PVC 会出现如下错误:
Warning ProvisioningFailed failed to provision volume with StorageClass "cephfs-show": rpc error: code = InvalidArgument desc = failed to get connection: connecting failed: rados: ret=-95, Operation not supported
根本原因
经过深入分析,发现这个问题主要由两个关键因素导致:
-
配置未正确传递:虽然管理员在 rook-config-override ConfigMap 中设置了认证参数为 none,但这些配置并未正确传递到 CSI 驱动使用的配置文件中。
-
CSI 驱动依赖:Rook 的 CephFS CSI 驱动在创建卷时会读取 /etc/ceph/ceph.conf 文件中的配置,如果该文件中仍然保持默认的 cephx 认证设置,就会导致连接失败。
解决方案
要解决这个问题,需要确保配置正确应用到所有相关组件:
-
创建正确的 ConfigMap:不仅需要创建 rook-config-override,还需要专门为 CSI 驱动创建 csi-ceph-conf-override ConfigMap。
-
重启相关组件:创建或修改 ConfigMap 后,需要重启 Rook Operator 以应用新的配置。
-
验证配置传播:通过以下方式确认配置已正确应用:
- 检查 mon 容器中的配置
- 检查 csi-cephfsplugin 容器中的 /etc/ceph/ceph.conf 文件
最佳实践
-
配置管理:对于 Ceph 集群的配置修改,建议同时更新 rook-config-override 和 csi-ceph-conf-override 两个 ConfigMap。
-
变更顺序:
- 先创建或更新 ConfigMap
- 然后重启 Rook Operator
- 最后验证 CSI 驱动是否加载了新配置
-
认证选择:除非有特殊需求,否则建议保持 cephx 认证启用状态,这是 Ceph 集群的安全最佳实践。
技术细节
当 Ceph 认证被禁用时,CSI 驱动需要能够正确处理无认证的连接请求。这涉及到 Rook 的配置管理机制和 CSI 驱动的实现细节:
- Rook Operator 负责将集群配置传播到各个组件
- CSI 驱动需要能够读取最新的配置信息
- 配置变更需要触发相关组件的重新加载
通过理解这些组件间的交互关系,可以更好地诊断和解决类似问题。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0152- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112