狠狠撸

狠狠撸Share a Scribd company logo
K8S使?用Ceph存储
杨冠军
K8S存储
? 静态存储供应

? PV:Persistent Volume

? PVC:Persistent Volume Claim

? ?手动绑定PV到PVC

? 动态存储供应

? StorageClass

? ?自动创建PV和PVC并进?行行绑定
K8S Volume图示
RBD
? RBD:Rados Block Device

? ?网络块设备

? 每个PV对应?一个RBD Image

? 特点:

? ReadWriteOnce

? ReadOnlyMany
K8S使?用RBD
? 部署RBD Provisioner

? 与Ceph集群交互,创建/删除RBD Image

? 创建Secret(Ceph不不开启认证时忽略略)

? 创建StorageClass

? 配置Ceph集群相关信息:Monitor / Pool / Secret / ImageFormat

? 创建PVC

? 指定使?用上述StorageClass

? 创建POD使?用PVC

? 指定使?用上述PVC
RBD PVC使?用
? Map RBD Image到Host

? 命令:rbd map

? 格式化?文件系统

? 命令:mkfs.ext4 /dev/rbd<id>

? Mount到指定?目录

? 命令:mount /dev/rbd<id> /var/lib/kubelet/pods/…

? 映射到Docker Container使?用
CephFS
? Ceph FileSystem

? 部署MDS:MetaData Server

? 每个PV对应CephFS的?一个?子?目录

? 特点:

? 兼容POSIX

? ReadWriteMany:可以多个PODs挂载同?一个CephFS?目录
K8S使?用CephFS
? 部署CephFS Provisioner

? 与Ceph集群交互,创建/删除CephFS?子?目录

? 创建Secret(Ceph不不开启认证时忽略略)

? 创建StorageClass

? 配置Ceph集群相关信息:Monitor / Admin User / Secret

? 创建PVC

? 指定使?用上述StorageClass

? 创建POD使?用PVC

? 指定使?用上述PVC
CephFS PVC使?用
? Mount CephFS?子?目录到Host

? 内核Client:mount -t ceph …

? ?高性能需求场景!

? ?用户态Client:ceph-fuse

? 映射到Docker Container使?用
K8S CSI
? 当前模式:In-Tree

? 与K8S代码集成?一起

? 存储插件,各?厂商开发Storage Provisioner

? 未来:CSI - Container Storage Interface

? K8S提供统?一的CSI插件

? 各?厂商独?立开发满?足CSI的存储插件
K8S CSI架构
Ceph CSI
? 项?目:https://github.com/ceph/ceph-csi

? ?支持存储:

? RBD

? CephFS

? 版本?支持:K8S V1.11+
Q&A

More Related Content

Kubernetes use-ceph

  • 2. K8S存储 ? 静态存储供应 ? PV:Persistent Volume ? PVC:Persistent Volume Claim ? ?手动绑定PV到PVC ? 动态存储供应 ? StorageClass ? ?自动创建PV和PVC并进?行行绑定
  • 4. RBD ? RBD:Rados Block Device ? ?网络块设备 ? 每个PV对应?一个RBD Image ? 特点: ? ReadWriteOnce ? ReadOnlyMany
  • 5. K8S使?用RBD ? 部署RBD Provisioner ? 与Ceph集群交互,创建/删除RBD Image ? 创建Secret(Ceph不不开启认证时忽略略) ? 创建StorageClass ? 配置Ceph集群相关信息:Monitor / Pool / Secret / ImageFormat ? 创建PVC ? 指定使?用上述StorageClass ? 创建POD使?用PVC ? 指定使?用上述PVC
  • 6. RBD PVC使?用 ? Map RBD Image到Host ? 命令:rbd map ? 格式化?文件系统 ? 命令:mkfs.ext4 /dev/rbd<id> ? Mount到指定?目录 ? 命令:mount /dev/rbd<id> /var/lib/kubelet/pods/… ? 映射到Docker Container使?用
  • 7. CephFS ? Ceph FileSystem ? 部署MDS:MetaData Server ? 每个PV对应CephFS的?一个?子?目录 ? 特点: ? 兼容POSIX ? ReadWriteMany:可以多个PODs挂载同?一个CephFS?目录
  • 8. K8S使?用CephFS ? 部署CephFS Provisioner ? 与Ceph集群交互,创建/删除CephFS?子?目录 ? 创建Secret(Ceph不不开启认证时忽略略) ? 创建StorageClass ? 配置Ceph集群相关信息:Monitor / Admin User / Secret ? 创建PVC ? 指定使?用上述StorageClass ? 创建POD使?用PVC ? 指定使?用上述PVC
  • 9. CephFS PVC使?用 ? Mount CephFS?子?目录到Host ? 内核Client:mount -t ceph … ? ?高性能需求场景! ? ?用户态Client:ceph-fuse ? 映射到Docker Container使?用
  • 10. K8S CSI ? 当前模式:In-Tree ? 与K8S代码集成?一起 ? 存储插件,各?厂商开发Storage Provisioner ? 未来:CSI - Container Storage Interface ? K8S提供统?一的CSI插件 ? 各?厂商独?立开发满?足CSI的存储插件
  • 12. Ceph CSI ? 项?目:https://github.com/ceph/ceph-csi ? ?支持存储: ? RBD ? CephFS ? 版本?支持:K8S V1.11+
  • 13. Q&A