Sonyfe25cp的玩具

home

在Docker和Kubernetes上运行MongoDB微服务

27 Jun 2016

##介绍 想尝试在笔记本电脑上运行MongoDB么?执行一个简单的命令,然后你就有一个轻量级、自组织的沙盒;再通过一条命令就可以移除所有的痕迹。

需要在多个环境中运行相同的应用程序栈?创建你自己的容器镜像,让开发、测试、操作和支持团队启动一份完全相同的环境。

容器正在改变整个软件生命周期;从最初的技术试验到通过开发、测试、部署和支持的概念证明。

###阅读微服务:容器和编排白皮书

编排工具管理者多个容器如何创建、升级和高可用。编排同样管理着容器如何连接,并利用多个微服务容器创建稳定的应用服务。

丰富的功能、简单的工具、强大的API让容器和编排得到DevOps团队的青睐。DevOps工程师将它们整合到持续集成(CI)和持续交付(CD)工作流中。

本篇文章将探索你在尝试运行和编排MongoDB容器时遇到的问题,并描述如何克服这些问题。

##对于MongoDB的思考

采用容器和编排运行MongoDB带来了一些新的思考:

###利用Docker和Kubernetes实现MongoDB冗余备份

如前一节所述,MongoDB这类分布式数据库在利用编排框架(如Kubernetes)进行部署时需要额外考虑。本节将对这部分细节进行分析,并介绍如何实现。

首先,我们在一个单独的Kubernetes集群(同一个数据中心内,并不存在物理上的冗余备份)中创建整个MongoDB冗余集合。如果跨多个数据中心进行创建,其步骤也差异不大,后续将会介绍。

备份中的每个成员都运行在独自的pod中,只暴露其ip地址和端口。固定的IP地址对于外部应用和其他冗余备份节点非常重要,它决定了哪些pod将被重新部署。

下图展示了其中一个pod与关联的冗余控制器和服务的关系。

xxxxxxxxxx

深入这些配置中描述的资源,内容如下:

下图展示了冗余备份及中的第二成员信息: