有状态容器实践:k8s集成ceph分布式存储

本文介绍了在Kubernetes(k8s)环境中集成Ceph分布式存储的实践,探讨了容器存储的挑战,如数据丢失、无法跨主机挂载。提到了Torus和Flocker作为解决方案,但因成熟度和系统限制未采用。最终选择了k8s+cephrbd组合,详细阐述了Ceph的特性和优势,以及安装部署Ceph的步骤。在CoreOS系统上,通过容器化方式解决rbd命令执行问题,实现了rbd卷的动态挂载。文章强调了在CoreOS上k8s与ceph集成的复杂性和解决方案,同时指出该方案可能不适合作为容器共享存储,并期待进一步的验证和讨论。
摘要由CSDN通过智能技术生成

图片描述

大家好,今天由我为大家介绍一下我们对于k8s与ceph集成的预研成果。对于k8s与ceph,我们也了解有限,有些理解不对的地方,还请大家指正。

图片描述

今天将基于以上6点内容来分享。如果大家有任何问题,也欢迎在微课堂之后在群中直接提出,大家共同探讨。

图片描述

总结了一下,产生存储痛点的原因大致有以下几个:

•默认情况下,容器产生的数据只存于内存中,容器一销毁,数据也随之丢失

•Docker可通过-v参数,将一个本地目录挂载至容器,但存在不能跨越主机的问题,无法在集群中应用•Docker还可以通过各种存储插件支持将各种类型的存储做为后端存储,但也存在无法跨主机集群应用的问题

•Docker+k8s一起的时候,存储的问题更突显。

k8s的Pod是不稳定的,随时可能会因为重新调度而在某台机器上销毁,而在另一台机器上新建,持久化存储必须跟得上这种调度,随时准备随容器一起进行迁移。

图片描述

图片描述

Torus是一种针对容器集群量身打造的存储系统,可以为通过Kubernetes编排和管理的容器集群提供可靠可扩展的存储。

这是继etcd、rkt、flannel,以及CoreOSLinux之后CoreOS发布的另一个开源产品。

Torus的产品特性:

1.扩展性:与etcd类似,Torus也是一种构建块,可以实现包括分布式块设备( Distributedblock device)或大型对象存储在内不同类型的存储。Torus使用Go语言编写并使用gRPC协议,用户可以方便地用任何语言创建Torus客户端。

2.易用性:专门针对集群和Kubernetes等集群流程平台(Clusterorchestrationplatform)设计的Torus可用简单的方法部署和运维,并可随时缩放。

3.准确性:Torus使用etcd分布式键值数据库存储并检索文件或对象元数据。etc d为必须快速可靠执行的分布式系统核心运作提供了一个坚实、经得起考验的基础。

4.缩放性:Torus目前可缩放至数百个节点,并可将多个共用磁盘以单一存储池 的方式使用。

虽然Torus的特性看起来很美,可以毕竟它还太年轻,成熟稳定需要一定的时间。目前我们只是保持持续的关注。

图片描述

第二种则是Flocker,目前也是很火热的个项目。Flocker提供了开源容器数据卷管理系统。它提供了数据迁移的工具,从而解决了有状态服务的容器化难题。尤其适用于数据库这样的容器。通常,容器的数据卷与单个server绑定,Flocker数据卷,则可以随容器迁移而迁移。Flocker为实现有状态的微服务提供了便利。上图是它的架构示意图,它要求每个节点上都必须要安装它的flockerplugin, 然后由flockercontrol进行统一调度,最终实现数据与容器同步迁移。

图片描述

如上图所示,展示了存储随容器迁移的过程:

1.当容器发生迁移时,flocker可以保证容器所挂载的数据卷也会跟着同步迁移。

2.迁移要求各个主机上都需要安装flockerplugin

3.原理其实是在其它主机上将容器启动的时候,将数据卷重新挂载其上。因此,单个容器迁移时,服务存在一定的中断,但这个过程一般很短。

flocker其实是我们比较心仪的方式。但是因为系统的限制,目前没有办法安装。我们同样对它保持着高度的关注。

图片描述

最后介绍的这第三种方案,则是比较常规的方案,基于k8s本身的能力以及第三方的插件来实现,当然还必须后端有对应的存储进行支持。k8s的pv可以向容器提供持久存储。它需要先于Pod创建,然后在pod创建的时候,绑定给它。也可以不使用pv, 直接在声明pod的时候,使用mountpoint属性声明需要使用的持久卷。pv与mountpoint都支持多种类型的存储,基本上涵盖了目前的主流方式。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值