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 驱动需要能够读取最新的配置信息
- 配置变更需要触发相关组件的重新加载
通过理解这些组件间的交互关系,可以更好地诊断和解决类似问题。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0194- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00