测试环境docker化—容器集群编排实践

本文介绍了如何使用Docker Swarm进行测试环境的容器集群编排,以解决资源不足、模块间通信和手动构建的问题。通过搭建Swarm集群,实现多主机的容器部署和负载均衡。文章详细阐述了Swarm模式的集群搭建、跨主机通信、私有网络创建以及compose部署,最后讨论了测试环境的自动化部署流程和未来优化方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文来自网易云社区

作者:孙婷婷


背景

在前文《测试环境docker化—基于ndp部署模式的docker基础镜像制作》中已经详述了docker镜像制作及模块部署的过程,按照上述做法已可以搭建测试环境。但是在实践过程中发现存在很多问题:

  1. 在一台云主机上搭建多个模块,容易出现资源不足的情况(我们在实验过程中有台云主机好几次宕机,经常要删掉不用的镜像容器);

  2. 部分模块之间需要相互调用,为方便部署多套环境简化配置修改,部署时需要确定容器的ip地址;

  3. 手动敲命令一个个构建容器,n个模块就要敲n个构建指令,构建容易出错;

基于上述原因,同时参考组内大神倪子的实践《细说Mammut大数据系统测试环境Docker迁移之路》,我们也尝试了引入容器集群编排,来进一步优化测试环境docker化的过程。


容器集群搭建

为解决一台测试环境云主机可能支撑不了一套环境的问题,我们考虑使用多台云主机组成一个容器集群,将多个deploy容器负载均衡的部署到多台云主机上,来实现环境的稳定和资源的合理利用。

要实现多主机的容器部署和分配,需要引入集群调度工具。目前业界比较主流的调度管理工具有Docker Swarm、Google Kubernetes 和 Apache Mesos(基于Marathon框架),其中目前已占领上风的是Kubernetes,成为容器编排管理的最佳实践工具。但是参考倪子的文章和介绍,我最终决定继续选择Swarm来进行实践。在Swarm的学习调研过程中,我发现区别于倪子实践使用的Docker Swarm,docker1.12版本已经进一步推出了内置的简单易用的Swarm mode集群。老的Docker Swarm使用独立的外部KV存储(比如Consul、etcd、zookeeper),搭建独立运行的Docker主机集群,使用KV存储配置进行服务发现。新版的Swarm mode则将docker swarm包含到docker引擎中,并内置了服务发现工具,使得集群搭建进一步简化为直接使用docker swarm命令初始化一台主机作为manager,其他机器加入该swarm成为worker即可。具体命令如下(我们的测试环境共使用3台云主机):

#将一台主机指定为manager,该命令会返回唯一一个集群唯一token,且该节点会同时作为manager和worker运行sudo docker swarm init --listen-addr 10.165.148.87:2377 --advertise-addr 10.165.148.87#在另两台主机上运行上述命令返回的join命令,即可加入该swarm集群sudo docker swarm join \
    --token SWMTKN-1-0cytn4js5b8jn0vibtk935y7jptqxv63ttiqui1qhi2uo07emx-cr80z41yz9v2tsn8vyxgy6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值