为了在容器编排领域内继续快速创新,CoreOS发起了一个开源项目,旨在给Kubernetes用户提供一个合适的存储系统来配合Pods工作。
Torus背后的目标是为由Kubernetes编排的容器集群提供可伸缩的存储。
“我们从Kubernetes用户那儿听到使用现有的存储系统是很困难的。我们很容易运行Torus,它运行在一个容器中,并且可以用Kubernetes进行部署。它提供了一个分布式存储集群来管理微服务的工作负载”,CoreOS产品负责人Wei Dang在一次和TNS的采访中这么说。
按照CoreOS软件工程师Barak Michener的一篇博客文章《introducing the new technology》所说的,Torus解决了容器和微服务管理中最棘手的一个问题,也就是使用持久化存储。应用程序容器本身经常需要启动、停止、升级和在节点之间迁移,尽管必须在一个一致的位置来访问应用程序需要的数据。
“如果你面对容器中的一堆微服务,它们各自都有各自的数据存储,那么管理那些单个的数据存储可能变得相当具有挑战性,特别的是如果你利用的是现有存储系统,而它们并不是为处理所有这些容器而设计的。”,Dang说。
Kubernetes在集群中追踪所有不同的资源,Torus可以用来托管一个被其他微服务调用的数据库系统,无论这些微服务或者数据库本身是多久调用一次,都应该在命名空间内改变位置。
当然,现在有一整套成熟的产品集来运行分布式存储系统,该系统提供了跨服务传播大量存储池的优势。Red Hat的工程师们一直在GlusterFS和Ceph开源文件系统努力工作,这两个系统都可以很容易被用来提供具有伸缩性的分布式存储。
“然而,它们是很难使用的,未经确认的错误可以迅速惊人地传播开来。”,Michener诉说到。
Dang说到:“它主要是回到简单上面来,让那些解决方案启动、运行并且可管理是相当困难的。它们不是真正为大规模容器基础设施设计的,而主要是为非常大型的机器的小估摸集群设计的。”
生产环境中我们已经看到了Ceph的所有问题,我归纳到了这儿: https://t.co/Bjiy4JTLJx /cc就像在etcd分布式键值对数据库所做的一样,CoreOS按照Google GIFEE(Google大众基础设施)途径构建了Torus,该系统倡导高度可伸缩的用于企业的分布式基础设施。该公司还提供了一个谷歌Kubernetes的商业支持版本,称为Teconic用于容器编排。
@coreoslinux ——Gabriel Monroy (@gabrtv) 2016年6月1日
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 给予的协作以及我的测试平台并非只有CoreOS在解决新兴的容器生命周期的存储需求问题,Docker与Hedvig和BlockBridge都在合作为Docker数据中心扩展原生存储功能,EMC提供了REX-Ray,旨在为Docker和基于Mesos的容器运行时提供持久化的存储访问。还有IT咨询公司OpenCredo最近发布了KubeFuse,一个对于Kubernetes友好兼容的文件系统,允许管理员执行诸如编辑服务和复制控制器等方便的任务。
——Barak Michener (@barakmich) 2016年6月1日
CoreOS希望其他团队也参与贡献这个开源项目。对于那些在旧金山地区的小伙伴,公司将在下次的6月16日的CoreOS meetup上做一个深入的技术探讨。
TNS研究分析师Lawrence Hecht促成了这篇文章
CoreOS、Docker和Red Hat是New Stack的赞助商
原文链接:CoreOS Launches a Kubernetes-Friendly Storage System: Torus(翻译:胡震)
原文发布时间为:2016-06-15
本文作者:胡震
本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。
原文标题:CoreOS发起的友好兼容Kubernetes的存储系统:Torus