1、动态存储介绍
StorageClass:存储类,由K8s管理员创建,用于动态PV的管理,可以链接至不同的后端存储, 比如Ceph、GlusterFS等。之后对存储的请求可以指向StorageClass,然后StorageClass会自动 的创建、删除PV。
实现方式:
- in-tree: 内置于K8s核心代码,对于存储的管理,都需要编写相应的代码。
- out-of-tree:由存储厂商提供一个驱动(CSI(推荐)或Flex Volume(不推荐)),安装到K8s集群,然后StorageClass只需要配置该驱动即可,驱动器会代替StorageClass管理存储。
storage-class 官方文档
2、云原生存储Rook
2.1 介绍
Rook是一个自我管理的分布式存储编排系统,它本身并不是存储系统,在存储和k8s之前搭建了一个桥梁,使存储系统的搭建或者维护变得特别简单,Rook将分布式存储系统转变为自我管理、自我扩展、自我修复的存储服务。它让一些存储的操作,比如部署、配置、扩容、升级、迁移、灾难恢复、监视和资源管理变得自动化,无需人工处理。并且 Rook支持CSI,可以利用CSI做一些PVC的快照、扩容、克隆等操作。
Rook官网
2.2 整体架构
架构是以ceph为例子。
2.3、Rook部署ceph集群
2.3.1 部署Rook要求
➢ K8s集群至少五个节点,每个节点的内存不低于5G,CPU不低于2核
➢ 至少有三个存储节点,并且每个节点至少有一个裸盘
➢ K8s集群所有的节点时间必须一致