最热门的云原生存储解决方案
存储是 Containers-as-a-Service 最关键的组件之一。Container-native storage将基础存储服务公开给容器和微服务。像软件定义的存储一样,它从不同的介质聚合存储资源。
备注:
容器应用场景下的存储有着自己独特的需求,需要能够对容器级别的存储卷做细粒度的管理,例如Persistent Volume级别的Quota配置,QoS限速,ACL控制,快照等。这就是Container-Native Storage的基本要求。
从2018年最新的Gartner技术趋势图中,我们可以看到,专门针对容器应用场景的持久化存储Container-Native Storage正处于明显的上升趋势。
那么Container-Native Storage 与 我们日常的存储有什么差别呢?
专门为支持容器而设计的 能够满足应用的扩展以及性能需求 与容器管理系统深度整合 支持大量系统的并行访问 参考自:https://cloud.tencent.com/developer/article/1443561
Container-native storage通过提供持久卷,使有状态工作负载(stateful workloads)能够在容器内运行。结合诸如StatefulSets之类的服务,它提供了可靠性和稳定性,可以在生产环境中运行关键型工作负载。
与容器运行时一起,Container-native storage和容器网络,构成了云原生中操作系统之上的层。
即使Kubernetes可以使用传统的分布式文件系统,例如网络文件系统(NFS)和GlusterFS,我们还是建议使用容器感知的存储结构,它旨在满足生产中运行的有状态工作负载的需求。用户可以从各种开源项目和商业实施中进行选择。
云原生存储解决方案
云原生生态系统已定义了通过容器存储接口(CSI)进行存储的规范,该规范鼓励采用标准的便携式方法来通过容器化工作负载实施和使用存储服务。
开源项目有: Ceph, Longhorn, OpenEBS 和 Rook
商业产品有:MayaData提供的 Kubera ,NetApp的 Trident ,Red Hat的Container Storage Platform等。
NetApp,Pure Storage和VMware等传统供应商也还为Kubernetes提供存储插件。
容器存储 | ||
---|---|---|
商业案例 | 产品 | 供应商 |
Container Storage Platform | Red Hat | |
Kubera | MayaData | |
Portworx | Portworx | |
Robin | Robin Systems | |
StorageOS | StorageOS | |
Trident | NetApp | |
开源产品 | 产品 | CNCF 状态 |
Ceph | Not Submitted | |
LongHorn | Sandbox | |
OpenEBS | Sandbox | |
Rook | Incubating |
应对基础设施的挑战
托管的Kubernetes集群,可以降低管理大型容器所需的复杂性和技能。当IT专业人员评估其技术路线图时,简化支持Kubernetes工作负载的基础架构是最重要的标准之一。
我们通过查看2019 Cloud Native Computing Foundation调查有关当前和未来Kubernetes采用计划的数据,以及Kubernetes用户面临的容器挑战,得知,早期的技术采用受到当时与当前供应商关系的影响。
随着托管Kubernetes的兴起,云提供商通过存储类和动态配置公开了存储。客户可以将Amazon Elastic Block Store(EBS)卷附加到AWS,Azure托管磁盘,Google永久磁盘上,以及在AWS,GCP和Microsoft Azure中运行的Kubernetes工作者节点上。这给云提供商带来了优势。
当被问及他们使用的云原生存储时,Kubernetes用户最常使用Amazon EBS,Google Persistent Disk和Azure Disk Storage。
在许多情况下,StatefulSets允许集群工作负载访问云提供商提供的存储。虽然被广泛采用,但是来自大型云提供商的存储并不是专门为Kubernetes工作负载设计的。
排名第二的是Ceph,CSI和Gluster,其中37%的Gluster用户也使用Ceph。Ceph和Gluster是分布式文件系统,在多个节点之间添加了持久层。但是,它们没有很好地集成到Kubernetes工具和工作流程中,因此存储管理员可能会发现它们更难以维护和配置。
与更传统的存储公司提供的产品相比,像Ceph这样的文件系统通常被认为在云存储方面具有竞争力。
排名靠后的是那些以存储为中心的公司提供的产品,如Dell EMC,NetApp和Pure Storage。最初,Kubernetes集成了存储卷插件以连接到这些公司的存储后端。不幸的是,这意味着对插件的任何微小更新或更改都意味着重建和编译整个Kubernetes代码。
传统存储公司的客户更有可能抱怨存储挑战。
例如,Pure Storage客户中有46%的客户在处理与容器相关的存储方面遇到了挑战,而Kubernetes普通用户的这一比例仅为27%。CSI已于2019年在Kubernetes上普遍可用,并消除了不断需要上游集成的挑战。传统存储供应商,云提供商和像Portworx这样的纯容器存储公司正在转向CSI。
CSI是人们在遇到容器存储挑战时,一个行之有效的办法。
尽管某些公司正在考虑使用成熟公司的产品,但是在那些寻求新存储产品的公司中,开源项目才是最重要的。遇到存储挑战的Kubernetes用户中更有可能评估和选择Rook,Ceph,Gluster,OpenEBS 和MinIO等开源项目。
通过实施诸如CSI的新方法,传统存储公司也正在解决其客户的担忧。尽管许多使用较新产品的用户(例如MayaData的OpenEBS,Minio和Portworx)表示他们在存储方面遇到了挑战,但他们可能指的是在连接旧数据存储方面遇到的问题。
译文链接:https://thenewstack.io/the-most-popular-cloud-native-storage-solutions/