《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.22容器版副本集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》


一、部署背景

由于业务系统的特殊性,我们需要面向不同客户环境部署定制化的系统实例。作为基础组件之一,MongoDB在各类客户现场需频繁 部署高可用副本集集群。尤其在支持多种 CPU 架构 (如 x86_64 和 ARM64)的场景下,手动部署不仅效率低下,还容易引发配置不一致等问题。

当前我们已采用 MongoDB 7.0.22 容器化版本,具备良好的可移植性与环境隔离能力。为进一步提升运维效率、降低人为错误风险,有必要开发一套 自动化部署工具,专门用于快速、可靠地构建跨架构(x86_64 + ARM64)的 MongoDB 副本集集群,实现部署流程的标准化、批量化和可重复化。

CPU架构 docker版本 docker-compose版本
X86_64 26.1.3 v2.29.0
ARM64 26.1.3 v2.29.0

二、工具介绍

1、支持 ARM64、X86_64架构CPU,确保在多种硬件平台上稳定运行。
2、支持TLS/SSL通信加密, SSL证书有效期为100年,降低证书轮换维护成本。
3、支持单节点部署模式,适用于开发、测试或轻量级生产环境。
4、支持在同一主机上部署高可用伪集群,架构为:1 主节点 + 1 从节点 + 1 仲裁节点,模拟真实集群行为。
5、支持跨主机的分布式集群部署,架构为:1 主节点 + 1 从节点 + 1 仲裁节点,实现容灾与高可用。
6、支持数据目录、日志目录、服务端口、管理账号、密码、最大连接数、副本集合名称等灵活配置。
7、支持数据目录、日志目录及核心配置文件的持久化存储。
8、支持一键部署、启动、停止、卸载等完整生命周期操作,便于自动化运维与管理。
9、支持数据备份、恢复及连接测试功能,确保数据安全与系统可恢复性。

如下图所示:
在这里插入图片描述

说明:工具使用非常简单,只需要修改变量文件,就可以快速帮你部署mongodb 7.0.22容器版副本集群。


三、工具下载

基于X86_64+ARM64架构CPU使用docker-compose一键离线部署mongodb 7.0.22容器版副本集群工具

主控脚本部分内容如下:
在这里插入图片描述


四、部署步骤

说明:单机伪集群是指在单主机部署mongodb副本集群,分布式集群是指在多个不同主机上部署mongodb副本集群,这里部署的是多机分布式集群。


1、查看帮助命令
在这里插入图片描述


2、部署规划
说明:这里使用3台服务器部署副本集群。

宿主机IP 操作系统 内核版本 节点说明
192.168.0.61 Ubuntu 22.04.2 LTS 5.15.0-113-generic arbiter节点
192.168.0.62 Ubuntu 22.04.2 LTS 5.15.0-113-generic secondary节点
192.168.1.63 Ubuntu 22.04.2 LTS 5.15.0-113-generic primary节点

3、准备一键部署工具包

说明:将一键部署工具包分上传到arbiter节点。


4、编辑变量文件

说明:在arbiter节点编辑cluster.conf文件。

root@localhost:/opt/mongodb-replica-set# cp cluster.conf.tpl cluster.conf
root@localhost:/opt/mongodb-replica-set# vim cluster.conf

如下图所示:
在这里插入图片描述


5、部署arbiter节点(192.168.0.61)

说明:部署顺序必须为:arbiter节点 > secondary节点 > primary节点

root@localhost:/opt/mongodb-replica-set# ./op.sh -a build -m arbiter

6、分发部署包到secondary节点(192.168.0.62)、primary节点(192.168.0.63)

root@localhost:/opt# scp -r mongodb-replica-set root@192.168.0.62:/opt
root@localhost:/opt# scp -r mongodb-replica-set root@192.168.0.63:/opt

7、部署secondary节点(192.168.0.62)

root@localhost:/opt/mongodb-replica-set# ./op.sh -a build -m secondary

8、部署primary节点(192.168.0.63)

root@localhost:/opt/mongodb-replica-set# ./op.sh -a build -m primary

9、在primary节点(192.168.0.63)上检查集群状态

root@localhost:/opt/mongodb-replica-set# ./op.sh -a check -m primary

五、其它操作

5.1、启动

说明:分别在对应主机节点上执行。

root@localhost:/opt/mongodb-replica-set# ./op.sh -a start -m arbiter
root@localhost:/opt/mongodb-replica-set# ./op.sh -a start -m secondary
root@localhost:/opt/mongodb-replica-set# ./op.sh -a start -m primary

5.2、停止

说明:分别在对应主机节点上执行。

root@localhost:/opt/mongodb-replica-set# ./op.sh -a stop -m arbiter
root@localhost:/opt/mongodb-replica-set# ./op.sh -a stop -m secondary
root@localhost:/opt/mongodb-replica-set# ./op.sh -a stop -m primary

5.3、检查

说明:分别在对应主机节点上执行。

root@localhost:/opt/mongodb-replica-set# ./op.sh -a check -m arbiter
root@localhost:/opt/mongodb-replica-set# ./op.sh -a check -m secondary
root@localhost:/opt/mongodb-replica-set# ./op.sh -a check -m primary

5.4、卸载

说明:分别在对应主机节点上执行。

root@localhost:/opt/mongodb-replica-set# ./op.sh -a clear -m arbiter
root@localhost:/opt/mongodb-replica-set# ./op.sh -a clear -m secondary
root@localhost:/opt/mongodb-replica-set# ./op.sh -a clear -m primary

5.5、备份

说明:在primary节点上执行。

root@localhost:/opt/mongodb-replica-set# cd tools/
root@localhost:/opt/mongodb-replica-set/tools# ./auto_backup.sh backup primary

5.6、还原

说明:在primary节点上执行。

root@localhost:/opt/mongodb-replica-set# cd tools/
root@localhost:/opt/mongodb-replica-set/tools# ./auto_backup.sh restore primary

5.7、连接

说明:分别在对应主机节点上执行。

root@localhost:/opt/mongodb-replica-set# cd tools/
root@localhost:/opt/mongodb-replica-set/tools# ./auto_backup.sh connect primary

root@localhost:/opt/mongodb-replica-set# cd tools/
root@localhost:/opt/mongodb-replica-set/tools# ./auto_backup.sh connect secondary

root@localhost:/opt/mongodb-replica-set# cd tools/
root@localhost:/opt/mongodb-replica-set/tools# ./auto_backup.sh connect arbiter

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值