CoreOS发起的友好兼容Kubernetes的存储系统:Torus

本文讲的是CoreOS发起的友好兼容Kubernetes的存储系统:Torus【编者的话】容器和微服务管理一直有一个最棘手的问题就是持久化存储,CoreOS最近发起了一个项目Torus,给Kubernetes用户提供了一个友好兼容的分布式存储集群,也欢迎大家积极参与这个开源项目。

为了在容器编排领域内继续快速创新,CoreOS发起了一个开源项目,旨在给Kubernetes用户提供一个合适的存储系统来配合Pods工作。
CoreOS发起的友好兼容Kubernetes的存储系统:Torus

Torus背后的目标是为由Kubernetes编排的容器集群提供可伸缩的存储。

“我们从Kubernetes用户那儿听到使用现有的存储系统是很困难的。我们很容易运行Torus,它运行在一个容器中,并且可以用Kubernetes进行部署。它提供了一个分布式存储集群来管理微服务的工作负载”,CoreOS产品负责人Wei Dang在一次和TNS的采访中这么说。

按照CoreOS软件工程师Barak Michener的一篇博客文章《introducing the new technology》所说的,Torus解决了容器和微服务管理中最棘手的一个问题,也就是使用持久化存储。应用程序容器本身经常需要启动、停止、升级和在节点之间迁移,尽管必须在一个一致的位置来访问应用程序需要的数据。

“如果你面对容器中的一堆微服务,它们各自都有各自的数据存储,那么管理那些单个的数据存储可能变得相当具有挑战性,特别的是如果你利用的是现有存储系统,而它们并不是为处理所有这些容器而设计的。”,Dang说。

Kubernetes在集群中追踪所有不同的资源,Torus可以用来托管一个被其他微服务调用的数据库系统,无论这些微服务或者数据库本身是多久调用一次,都应该在命名空间内改变位置。
CoreOS发起的友好兼容Kubernetes的存储系统:Torus

当然,现在有一整套成熟的产品集来运行分布式存储系统,该系统提供了跨服务传播大量存储池的优势。Red Hat的工程师们一直在GlusterFSCeph开源文件系统努力工作,这两个系统都可以很容易被用来提供具有伸缩性的分布式存储。

“然而,它们是很难使用的,未经确认的错误可以迅速惊人地传播开来。”,Michener诉说到。

Dang说到:“它主要是回到简单上面来,让那些解决方案启动、运行并且可管理是相当困难的。它们不是真正为大规模容器基础设施设计的,而主要是为非常大型的机器的小估摸集群设计的。”

生产环境中我们已经看到了Ceph的所有问题,我归纳到了这儿: https://t.co/Bjiy4JTLJx /cc
@coreoslinux ——Gabriel Monroy (@gabrtv) 2016年6月1日
就像在etcd分布式键值对数据库所做的一样,CoreOS按照Google GIFEE(Google大众基础设施)途径构建了Torus,该系统倡导高度可伸缩的用于企业的分布式基础设施。该公司还提供了一个谷歌Kubernetes的商业支持版本,称为Teconic用于容器编排。

Torus非常适合分布式工作负载,在很大程度上因为它依靠CoreOS的etcd键值存储来整合文件或对象元数据。etcd数据库还对共识算法提供了坚实的支持,该算法对于跨服务器追踪移动资源是必需的。Torus使用Go语言开发并使用了Google gRPC协议,Michener希望这两个特性会为构建第三方的Torus客户端提供简单的可扩展性。

运行中

Dang说:“Torus可以在其权限范围内将所有磁盘作为一个单一的存储池来管理,并且可以扩展到数百个节点。”

一旦运行了,Torus允许Kubernetes用户动态地将卷附加到已部署的Pods上。Michener写到:“对于一个运行在Pod里边的应用,Torus表现地就像一个传统的文件系统”,Kubernetes本身就为部署Torus通过Kubernetes清单提供了方法,允许管理员将Torus作为Kubernetes可管理的应用来运行。

目前,Torus通过网络块设备(NBD)支持块存储,但未来可能支持文件存储。数据可以加密,并且软件提供了现今文件系统内置的很多现代特性,包括哈希、复制、垃圾回收和池再平衡。

Dang说到:“如果你添加一个新的节点,Torus会自动找出如何放置数据和复制来适应这种情况,Torus可以跨集群跨节点自动地计算数据放置位置。”

“究其核心,Torus是一个库,就像一个传统文件那样提供了一个接口,允许通过易于理解的基本文件操作来进行存储操作。”Michener解释到:“协调和检查点通过etcd共识机制来处理,这种分布式文件可以多种方式呈现给用户应用程序。”

Torus已经启动了一段时间了,非常感谢@coreoslinux 给了我机会,还有@packethost 给予的协作以及我的测试平台


——Barak Michener (@barakmich) 2016年6月1日
并非只有CoreOS在解决新兴的容器生命周期的存储需求问题,DockerHedvigBlockBridge都在合作为Docker数据中心扩展原生存储功能,EMC提供了REX-Ray,旨在为Docker和基于Mesos的容器运行时提供持久化的存储访问。还有IT咨询公司OpenCredo最近发布了KubeFuse,一个对于Kubernetes友好兼容的文件系统,允许管理员执行诸如编辑服务和复制控制器等方便的任务。

CoreOS希望其他团队也参与贡献这个开源项目。对于那些在旧金山地区的小伙伴,公司将在下次的6月16日的CoreOS meetup上做一个深入的技术探讨。

TNS研究分析师Lawrence Hecht促成了这篇文章
CoreOSDockerRed Hat是New Stack的赞助商

原文链接:CoreOS Launches a Kubernetes-Friendly Storage System: Torus(翻译:胡震)

原文发布时间为:2016-06-15

本文作者:胡震

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:CoreOS发起的友好兼容Kubernetes的存储系统:Torus

上一篇:单线程与异步


下一篇:基于ECS搭建FTP服务