Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
利用群集节点磁盘的Kubernetes存储提供程序_Kubernetes_Storage_Openebs_Rook Storage - Fatal编程技术网

利用群集节点磁盘的Kubernetes存储提供程序

利用群集节点磁盘的Kubernetes存储提供程序,kubernetes,storage,openebs,rook-storage,Kubernetes,Storage,Openebs,Rook Storage,我正在Kubernetes之上构建一个平台,除其他要求外,该平台应: 不可知论者。任何具有sane内核和cgroup挂载的Linux 通过利用群集节点磁盘提供持久存储 提供ReadWriteMany卷或实现共享存储的方法 POD不应绑定到特定节点(如本地持久卷) 迁移POD时自动重新连接卷(例如,由于节点耗尽或节点丢失情况) 提供存储级别的数据复制 不假定每个节点都有专用的原始块设备 我通过为k8s组件和容器引擎使用静态二进制文件来解决第一点。再加上最小的主机工具,也是静态二进制文件 我仍然

我正在Kubernetes之上构建一个平台,除其他要求外,该平台应:

  • 不可知论者。任何具有sane内核和cgroup挂载的Linux
  • 通过利用群集节点磁盘提供持久存储
  • 提供ReadWriteMany卷或实现共享存储的方法
  • POD不应绑定到特定节点(如本地持久卷)
  • 迁移POD时自动重新连接卷(例如,由于节点耗尽或节点丢失情况)
  • 提供存储级别的数据复制
  • 不假定每个节点都有专用的原始块设备
我通过为k8s组件和容器引擎使用静态二进制文件来解决第一点。再加上最小的主机工具,也是静态二进制文件

我仍然在寻找一种持久性存储的解决方案

到目前为止我评估/使用的内容:

  • Rook:虽然它在功能上满足了要求,但还是有一个bug,卷没有和POD一起移动
  • 开场白:它不符合操作系统不可知论的要求。每个节点上都需要iSCSI客户端和工具,这取决于主机的操作系统

因此,问题是,在使用群集节点磁盘时,对于Kubernetes持久存储,我还有什么其他选择。

可以考虑以下选项

  • wards上的kubernetes版本1.14.0支持本地持久卷。可以使用节点标签使用本地pv。您可能必须在HA(主从)模式下运行有状态工作负载,以便在节点发生故障时数据可用

  • 您可以在其中一个群集节点上安装nfs服务器,并将其用作工作负载的存储。nfs存储支持读写。如果在baremetal上设置集群,这可能会很好

  • Rook也是一个不错的选择,您已经尝试过了,但它还没有准备好生产


  • 在这三个选项中,第一个选项适合您的要求。希望听取社区的任何其他选项。

    可以考虑以下选项

  • wards上的kubernetes版本1.14.0支持本地持久卷。可以使用节点标签使用本地pv。您可能必须在HA(主从)模式下运行有状态工作负载,以便在节点发生故障时数据可用

  • 您可以在其中一个群集节点上安装nfs服务器,并将其用作工作负载的存储。nfs存储支持读写。如果在baremetal上设置集群,这可能会很好

  • Rook也是一个不错的选择,您已经尝试过了,但它还没有准备好生产

  • 在这三个选项中,第一个选项适合您的要求。希望从社区中听到任何其他选项。

    根据官方截至目前(v1.16)K8S在几种不同类型的卷上支持WriteMany

    即:,及

    通常,所有这些都会保留卷的内容,而卷只是在移除Pod时卸载。这意味着卷可以预先填充数据,并且数据可以在POD之间“传递”。这些FS可以由多个写入程序同时装入

    在这些FS中,可以在每个kubernetes群集节点上部署(至少需要3个)。可以在不同的环境中访问数据,其中之一是NFS

    一个
    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的应用程序消耗整个磁盘