利用群集节点磁盘的Kubernetes存储提供程序
我正在Kubernetes之上构建一个平台,除其他要求外,该平台应:利用群集节点磁盘的Kubernetes存储提供程序,kubernetes,storage,openebs,rook-storage,Kubernetes,Storage,Openebs,Rook Storage,我正在Kubernetes之上构建一个平台,除其他要求外,该平台应: 不可知论者。任何具有sane内核和cgroup挂载的Linux 通过利用群集节点磁盘提供持久存储 提供ReadWriteMany卷或实现共享存储的方法 POD不应绑定到特定节点(如本地持久卷) 迁移POD时自动重新连接卷(例如,由于节点耗尽或节点丢失情况) 提供存储级别的数据复制 不假定每个节点都有专用的原始块设备 我通过为k8s组件和容器引擎使用静态二进制文件来解决第一点。再加上最小的主机工具,也是静态二进制文件 我仍然
- 不可知论者。任何具有sane内核和cgroup挂载的Linux
- 通过利用群集节点磁盘提供持久存储
- 提供ReadWriteMany卷或实现共享存储的方法
- POD不应绑定到特定节点(如本地持久卷)
- 迁移POD时自动重新连接卷(例如,由于节点耗尽或节点丢失情况)
- 提供存储级别的数据复制
- 不假定每个节点都有专用的原始块设备李>
- Rook:虽然它在功能上满足了要求,但还是有一个bug,卷没有和POD一起移动
- 开场白:它不符合操作系统不可知论的要求。每个节点上都需要iSCSI客户端和工具,这取决于主机的操作系统
因此,问题是,在使用群集节点磁盘时,对于Kubernetes持久存储,我还有什么其他选择。可以考虑以下选项
在这三个选项中,第一个选项适合您的要求。希望听取社区的任何其他选项。可以考虑以下选项
persistentVolumeClaim
卷用于将一个卷装入一个Pod中。PersistentVolumes是用户在不了解特定云环境的详细信息的情况下“声明”持久存储(如GCE PersistentDisk或iSCSI卷)的一种方式
以下类型的卷支持ReadWriteMany:
-蓝锉
-CEPFS
-Glusterfs
-夸拜特
-NFS
-PortworxVolume
但这不是一个无法控制基础设施的选项
该选项表示已装入的本地存储设备,如磁盘、分区或目录。本地卷只能用作静态创建的PersistentVolume。缺点是,如果节点变得不健康,那么本地卷也将变得不可访问,使用它的Pod将无法运行
因此,目前还没有一种解决方案能够满足所有开箱即用的要求。根据官方截至目前(v1.16)的说法,K8S在几种不同类型的卷上支持WriteMany
即:,及
通常,所有这些都会保留卷的内容,而卷只是在移除Pod时卸载。这意味着卷可以预先填充数据,并且数据可以在POD之间“传递”。这些FS可以由多个写入程序同时装入
在这些FS中,可以在每个kubernetes群集节点上部署(至少需要3个)。可以在不同的环境中访问数据,其中之一是NFS
一个persistentVolumeClaim
卷用于将一个卷装入一个Pod中。PersistentVolumes是用户在不了解特定云环境的详细信息的情况下“声明”持久存储(如GCE PersistentDisk或iSCSI卷)的一种方式
以下类型的卷支持ReadWriteMany:
-蓝锉
-CEPFS
-Glusterfs
-夸拜特
-NFS
-PortworxVolume
但这不是一个无法控制基础设施的选项
该选项表示已装入的本地存储设备,如磁盘、分区或目录。本地卷只能用作静态创建的PersistentVolume。缺点是,如果节点变得不健康,那么本地卷也将变得不可访问,使用它的Pod将无法运行
因此,目前还没有一种解决方案能够满足所有的开箱即用要求。您可以使用OpenEBS Local PV,它可以为使用defaul的应用程序消耗整个磁盘