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

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

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

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

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

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

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

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

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

“然而,它们是很难使用的,未经确认的错误可以迅速惊人地传播开来。”,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在解决新兴的容器生命周期的存储需求问题, Docker Hedvig BlockBridge 都在合作为 Docker数据中心 扩展原生存储功能,EMC提供了 REX-Ray ,旨在为Docker和基于Mesos的容器运行时提供持久化的存储访问。还有IT咨询公司 OpenCredo 最近发布了 KubeFuse ,一个对于Kubernetes友好兼容的文件系统,允许管理员执行诸如编辑服务和复制控制器等方便的任务。

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

TNS研究分析师 Lawrence Hecht 促成了这篇文章
CoreOS Docker Red Ha t是New Stack的赞助商

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

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

本文作者:胡震

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

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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
690 265
|
Kubernetes 网络协议 Nacos
OpenAI 宕机思考丨Kubernetes 复杂度带来的服务发现系统的风险和应对措施
Kubernetes 体系基于 DNS 的服务发现为开发者提供了很大的便利,但其高度复杂的架构往往带来更高的稳定性风险。以 Nacos 为代表的独立服务发现系统架构简单,在 Kubernetes 中选择独立服务发现系统可以帮助增强业务可靠性、可伸缩性、性能及可维护性,对于规模大、增长快、稳定性要求高的业务来说是一个较理想的服务发现方案。希望大家都能找到适合自己业务的服务发现系统。
503 85
|
存储 Kubernetes 容器
Kubernetes 存储选项:持久化卷与存储类
【8月更文第29天】随着容器化的普及,越来越多的应用程序需要持久化数据以保持状态信息。Kubernetes 提供了一套完整的解决方案来管理和配置持久化存储,包括持久卷 (Persistent Volume, PV)、持久卷声明 (Persistent Volume Claim, PVC) 和存储类 (StorageClass)。本文将详细介绍这些概念,并通过实际示例来演示如何在 Kubernetes 中配置存储。
1019 3
|
Kubernetes 负载均衡 微服务
Kubernetes 生态系统中的微服务治理
【8月更文第29天】随着微服务架构的普及,管理分布式系统的复杂性也随之增加。Kubernetes 作为容器编排的事实标准,为微服务架构提供了强大的支持。结合像 Istio 这样的服务网格工具,Kubernetes 能够有效地解决微服务治理中的诸多挑战,如服务发现、负载均衡、流量管理和安全策略等。
207 2
|
11月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
321 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
12月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
245 1
|
11月前
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
存储 Kubernetes 安全
k8s存储类型:emptyDir、hostPath、nfs、pvc及存储类storageclass的静态/动态创建pv
Kubernetes提供了多种存储类型,满足不同的应用需求。`emptyDir`和 `hostPath`适用于临时和宿主机存储需求,`nfs`适用于共享存储,`PersistentVolumeClaim`和 `StorageClass`实现了持久存储的灵活管理。通过理解和配置这些存储类型,可以有效提升Kubernetes集群的存储管理能力。
632 13
|
Kubernetes 监控 测试技术
k8s学习--基于Ingress-nginx实现灰度发布系统
k8s学习--基于Ingress-nginx实现灰度发布系统
670 2
k8s学习--基于Ingress-nginx实现灰度发布系统

推荐镜像

更多