rook-ceph k8s部署

rook-ceph部署

官方文档:https://rook.io/docs/rook/v1.9/quickstart.html

分布式存储系统是一个有效的解决有状态工作负载高可用问题的方案。Ceph 就是一个分布式存储系统,近年来其影响主键扩大。Rook 是一个编排器,能够支持包括 Ceph 在内的多种存储方案。Rook 简化了 Ceph 在 Kubernetes 集群中的部署过程。

Rook 将分布式存储系统转变为自我管理、自我扩展、自我修复的存储服务。它自动执行存储管理员的任务:部署、引导、配置、配置、调配、扩展、升级、迁移、灾难恢复、监控和资源管理

Ceph 存储提供程序

Ceph 是一种高度可扩展的分布式存储解决方案,适用于块存储、对象存储和共享文件系统,具有多年的生产部署经验。

Rook 自动部署和管理 Ceph,以提供自我管理、自我扩展和自我修复的存储服务。Rook Operator 通过构建 Kubernetes 资源来部署、配置、配置、扩展、升级和监控 Ceph。

Ceph operator 于 2018 年 12 月在 Rook v0.9 版本中宣布稳定,多年来一直提供生产存储平台。Rook 由云原生计算基金会 (CNCF) 托管,是一个毕业级项目。

Rook 编排 Ceph 存储解决方案,并由专门的 Kubernetes Operator 进行自动化管理。Rook 确保 Ceph 在 Kubernetes 上运行良好,并简化部署和管理体验。

rook架构介绍

上面显示了三种受支持的存储类型的示例应用程序:

  • 块存储由一个蓝色应用表示,该应用已挂载卷。应用程序可以读取和写入 RWO 卷,而 Ceph 管理 IO。ReadWriteOnce (RWO)
  • 共享文件系统由共享 ReadWriteMany (RWX) 卷的两个紫色应用表示。两个应用程序可以同时主动读取或写入卷。Ceph 将确保使用 MDS 守护程序为多个写入器安全地保护数据。
  • 对象存储由一个橙色应用程序表示,该应用程序可以使用标准 S3 客户端读取和写入存储桶。

在上图中的虚线下方,组件分为三类:

  • Rook 算子(蓝色层):算子自动配置 Ceph
  • CSI 插件和置备程序(橙色层):Ceph-CSI 驱动程序提供卷的置备和挂载
  • Ceph 守护进程(红色层):Ceph 守护进程运行核心存储体系结构。请参阅词汇表以了解有关每个守护程序的更多信息。

生产集群必须具有三个或更多节点才能实现弹性存储平台。

块存储

在上图中,使用 RWO 卷创建应用程序的流程为:

  • (蓝色)应用程序创建 PVC 以请求存储
  • PVC 定义用于置备存储的 Ceph RBD 存储类 (sc)
  • K8s 调用 Ceph-CSI RBD 配置程序来创建 Ceph RBD 镜像。
  • kubelet 调用 CSI RBD 卷插件将卷挂载到 App 中
  • 该卷现在可用于读取和写入。

ReadWriteOnce 卷一次可以装载在一个节点上。

共享文件系统

在上图中,使用 RWX 卷创建应用程序的流程为:

<think>好的,用户问的是rook-ceph-crashcollector-k8s这个组件在Ceph中的作用。我需要先回忆一下RookCeph的关系,然后确定这个特定组件的作用。 首先,Rook是一个在Kubernetes上运行存储系统的operator,它简化了Ceph等存储系统的部署和管理。Ceph本身是一个分布式存储系统,提供对象、块和文件存储。在Kubernetes环境中,Rook负责自动化Ceph集群的配置和维护。 接下来,关于rook-ceph-crashcollector这个组件。名字中的“crashcollector”提示可能与收集崩溃或故障信息有关。在Ceph中,当守护进程(如OSD、MON)崩溃时,会产生崩溃报告,这些报告需要被收集和分析,以便进行故障排除。因此,这个组件可能负责收集这些崩溃信息。 用户提到的组件名称带有k8s,说明这是Kubernetes相关的部署。通常,Rook会在每个节点上部署一个pod来监控Ceph守护进程的状态。如果某个守护进程崩溃,这个collector会收集日志和元数据,并上传到Ceph集群中,方便后续分析。 需要确认这个组件的工作机制。当Ceph守护进程崩溃时,Rook会检测到,并启动对应的crashcollector pod。这个pod会收集必要的调试信息,比如日志、堆栈跟踪等,然后将这些信息存储起来,可能是在Ceph的管理层或指定的存储位置。这样,管理员可以查看这些崩溃报告,诊断问题。 另外,这个组件的命名规则是rook-ceph-crashcollector-加上节点名称,所以每个节点上可能会有对应的实例。确保用户了解这是自动创建的,用于故障排除,而不是常规运行的组件。 还要考虑用户可能的问题背景。用户可能遇到了Ceph集群的问题,或者注意到这个pod的存在,想知道其作用。需要解释清楚它的功能和必要性,以及如何处理相关数据。 最后,总结这个组件的作用,确保回答结构清晰,分点说明功能、触发条件和数据存储位置,帮助用户全面理解。</think>Rook-Ceph-CrashCollector 是 Rook 项目中与 Ceph 存储集群相关的一个辅助组件,主要用于 **收集和上报 Ceph 守护进程(daemon)崩溃的调试信息**。以下是它的核心功能解析: --- ### 1. **核心功能** - **自动收集崩溃日志** 当 Ceph 的守护进程(如 `osd`、`mon`、`mgr` 等)意外崩溃时,该组件会自动收集以下信息: - 崩溃时的堆栈跟踪(stack trace) - 核心转储(core dump,如果配置允许) - 运行日志(log) - 进程状态元数据 - **信息上报** 收集的崩溃数据会上传至 Ceph 集群的 `mgrd`(管理守护进程),供后续诊断和分析。 --- ### 2. **组件运行机制** - **按需创建** Rook Operator 会为每个 Kubernetes 节点部署一个 `rook-ceph-crashcollector` Pod。当检测到节点上的 Ceph 守护进程崩溃时,对应节点的 CrashCollector 会被触发。 - **命名规则** 名称格式为 `rook-ceph-crashcollector-<node-name>`,例如: ```plaintext rook-ceph-crashcollector-k8s-node-1 ``` --- ### 3. **与 Ceph 的关系** - **依赖 Ceph 工具链** 该组件内部调用 `ceph-crash` 工具完成数据收集,该工具是 Ceph 原生提供的崩溃分析模块。 - **数据存储位置** 崩溃报告存储在 Ceph 集群的默认存储池(如 `.mgr` 池),可通过以下命令查看: ```bash ceph crash ls ``` --- ### 4. **用户注意事项** - **必要性** 该组件是 Rook 实现 Ceph 高可用运维的关键部分,**不建议手动删除**,否则可能导致故障排查困难。 - **资源占用** 默认情况下,CrashCollector Pod 处于休眠状态(不占用资源),仅在崩溃事件发生时激活。 - **调试配置** 如需禁用或调整核心转储行为,需修改 Rook-Ceph 的 `CephCluster` CRD 配置(例如 `disableCollector` 字段)。 --- ### 总结 `rook-ceph-crashcollector` 是 RookCeph 集群设计的自动化故障诊断组件,通过收集崩溃数据帮助运维人员快速定位问题。它在 Kubernetes 集群中以 DaemonSet 形式存在,是 Ceph 存储可靠性的重要保障之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值