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 卷创建应用程序的流程为: