当前位置: 首页 > news >正文

rook-ceph的dashboard配置覆盖与生效

背景

在rook-ceph部署好之后,默认的ui是clusterip的模式,然后我们想通过edit svc的方式把类型改成nodeport,这时配置生效我们可以访问,然后就出现配置恢复的情况出现。

在这里插入图片描述
像出现这种情况,Rook-Ceph 配置自动还原的核心原因是 Operator 采用「声明式管理」,会持续将 CephCluster 自定义资源(CRD)的状态与实际集群资源(如 Service、Pod)同步。若配置不合法或超出 CRD 支持范围,修改会被还原,且编辑时会报校验错误。

以下就是核心问题:

Operator 的一致性协调:Rook Operator 会监控 CephCluster CRD 的变化,并根据 CRD 中的 spec 段 “协调” 实际资源(如 Dashboard 的 Service)。若手动修改 Service(如改成 NodePort),但 CRD 中未声明该配置,Operator 会将 Service 还原为 CRD 定义的默认状态(如 ClusterIP)。

CephCluster CRD 字段限制:早期 Rook 版本的 CephCluster CRD 不支持直接配置 Dashboard 的 Service 类型(如 NodePort)。若强行添加不支持的字段(如 spec.dashboard.service),CRD 校验会失败,导致配置无法保存,进而被 Operator 还原。

配置合法性校验失败:编辑 CephCluster 时提示 invalid,说明修改的字段不符合 CRD 的结构定义(如字段拼写、层级错误,或使用了 CRD 不支持的字段)。

操作生效

因为这个环境的cluster.yaml不知道在哪里,所以这里采用更改CRD yaml文件的方式来修改。

kubectl get  cephcluster rook-ceph -n rook-ceph

在这里插入图片描述
把集群文件导出

kubectl get cephcluster rook-ceph -n rook-ceph -o yaml > cephcluster.yaml

然后进行修改操作,并注意时效在一分钟内,要不然重新kubectl apply的时候会报错,需要重新导出配置再apply流程。

找到dashboard,关闭ssl和使用7000端口

  dashboard:enabled: trueport: 7000ssl: false

在这里插入图片描述
重新apply文件之后,我们创建个svc文件,例如dashboard-nodeport.yaml

apiVersion: v1
kind: Service
metadata:name: rook-ceph-mgr-dashboard-nodeportnamespace: rook-cephlabels:app: rook-ceph-mgrrook_cluster: rook-ceph
spec:ports:- name: dashboardport: 7000           # 与 Dashboard 内部端口一致targetPort: 7000     # 与 Dashboard 内部端口一致nodePort: 32304      # 自定义 NodePort(需在 30000–32767 范围内)selector:app: rook-ceph-mgrrook_cluster: rook-cephtype: NodePort

接着把mgr的pod进程重启下

kubectl  delete pod rook-ceph-mgr-a-844bf7c945-7mv9j   -n rook-ceph

查看svc
在这里插入图片描述
访问测验
在这里插入图片描述

http://www.dtcms.com/a/389048.html

相关文章:

  • 在 macOS 上安装 Claude Code 的完整指南
  • RocketMQ Dashboard 消息重复问题排查与修复(rocketmq-dashboard-2.0.0-source-release)
  • 卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
  • 多表联合查询
  • Day26_【深度学习(6)_神经网络NN(1中)激活函数_softmax详解篇】
  • 黑盒测试:测试用例设计之等价类设计方法(等价类划分:Equivalence Partitioning)有效等价类、无效等价类、边界值分析
  • 22 C++11 初始化新姿势:{} 统一初始化(省等号)+initializer_list 底层解析
  • 黑马头条_SpringCloud项目阶段二:FreeMarker组件以及MinIO系统集成
  • MySQL 数据库基础操作指南:从创建管理到备份恢复全解析
  • 【Java】-- rjvm 项目分析
  • Markdown 常用语法参考
  • 11.2.3 固定话题聊天实现
  • CAN(控制器局域网)工业协议教学文档(一)
  • PHP基础-变量与常量(第八天)
  • SQ01,SQ02,SQ03,SE93事务码配置
  • AI提示词Excel 表格提取数据准确度处理
  • DeviceNet 转 EtherNet/IP 实现罗克韦尔 PLC 与库卡机器人在汽车白车身焊接的微秒级数据同步协作案例
  • GPT-5 vs Gemini 2.5 Pro:两大AI旗舰模型深度技术对比
  • 31、GPT核心引擎完整手工构建:从算法原理到工程优化(Generative Pre-trained Transformer)
  • MySQL MHA 完整配置与故障后原主库还原指南
  • 栈-946.验证栈序列-力扣(LeetCode)
  • spring boot3.0整合rabbitmq3.13
  • Scrapy爬虫利器:CrawlSpider详解
  • 从零开始学Flink:数据源
  • GRPO算法复现
  • AI+Flask博客项目实战提示词笔记 20250918
  • 无人设备遥控器之时间戳技术篇
  • 模块四 展望微服务
  • RN 添加 <NavigationContainer>组件报错
  • 深入理解 AVL 树