架构

技术架构

上图展示了三种支持的存储类型的示例应用:

  • 块存储由蓝色应用表示,该应用挂载了一个 ReadWriteOnce (RWO) 卷。应用可以对该 RWO 卷进行读写操作,而 Ceph 负责管理 IO。
  • 共享文件系统由两个紫色应用表示,它们共享一个 ReadWriteMany (RWX) 卷。两个应用可以同时主动读写该卷。Ceph 通过 MDS 守护进程确保数据在多个写入者之间安全保护。
  • 对象存储由一个橙色应用表示,该应用可以使用标准的 S3 客户端对桶进行读写操作。

在上图虚线以下,组件分为三类:

  • Rook operator(蓝色层):operator 自动化配置 Ceph
  • CSI plugins and provisioners(橙色层):Ceph-CSI 驱动提供卷的供应和挂载
  • Ceph daemons(红色层):Ceph 守护进程运行核心存储架构。详见术语表了解各守护进程的更多信息。

块存储
在上图中,创建带有 RWO 卷的应用的流程为:

  • (蓝色)应用创建 PVC 以请求存储。
  • PVC 定义 Ceph RBD 存储类(sc)以供应存储。
  • K8s 调用 Ceph-CSI RBD provisioner 创建 Ceph RBD 镜像。
  • kubelet 调用 CSI RBD 卷插件将卷挂载到应用中。
  • 卷现在可用于读写。
  • ReadWriteOnce 卷一次只能挂载在一个节点上。

共享文件系统
在上图中,创建带有 RWX 卷的应用的流程为:

  • (紫色)应用创建 PVC 以请求存储。
  • PVC 定义 CephFS 存储类(sc)以供应存储。
  • K8s 调用 Ceph-CSI CephFS provisioner 创建 CephFS 子卷。
  • kubelet 调用 CSI CephFS 卷插件将卷挂载到应用中。
  • 卷现在可用于读写。
  • ReadWriteMany 卷可以挂载在多个节点上供应用使用。

对象存储 S3
在上图中,创建具有访问 S3 桶权限的应用的流程为:

  • (橙色)应用创建 BucketClaim 以请求桶。
  • Ceph COSI Driver 创建 Ceph RGW 桶。
  • Ceph COSI Driver 创建包含访问桶凭据的 secret。
  • 应用从 secret 中获取凭据。
  • 应用现在可以使用 S3 客户端对桶进行读写。