总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《Linux运维篇:Linux系统运维指南》
一、部署背景
由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统,而作为基础组件中的redis针对不同的客户环境需要多次部署哨兵集群,作为一个运维工程师,提升工作效率也是工作中的重要一环。所以我觉得有必要针对 ARM64 CPU架构mongodb4.0.11容器版哨兵集群编写自动化部署工具。
二、工具介绍
一键部署工具实现功能如下:
1、支持单实例部署
2、支持单机伪集群部署
3、支持多机分布式集群部署
4、支持一键创建mongodb管理用户密码
5、支持数据目录、日志目录、端口、密码参数灵活配置
6、支持创建、启动、停止、重启、卸载、检测mongodb集群状态
6、支持mongodb集群备份与恢复
说明:工具使用非常简单,只需要修改变量文件,一分钟就可以快速帮你部署mongodb副本集群。
三、工具下载
Kylin V10+ARM架构CPU基于docker-compose一离线部署mongodb4.0.11副本集群工具(桥接模式)
Kylin V10+ARM架构CPU基于docker-compose一离线部署mongodb4.0.11副本集群工具(主机模式)
四、工具使用
说明:
1、这里的桥接模式和主机模式是指docker容器的网络模式,使用桥接网络或者主机网络。这里以多机分布式集群为大家演示mongodb副本集群部署过程。
2、单机伪集群是指在单主机部署mongodb副本集群,分布式集群是指在不同主机上部署redis哨兵集群。
3、桥接模式和主机模式操作步骤完全一样,这里就只介绍桥接模式为例。
1、查看帮助命令
2、准备一键部署工具包
说明:将一键部署工具包分别上传到mongodb副本集群主机节点上。
3、编辑变量文件
说明:以下操作分别在mongodb副本集群节点的部署工具包中修改cluster.conf文件
[root@k8s-master-28 mongodb]# cp cluster.conf.tpl cluster.conf
[root@k8s-master-28 mongodb]# cat cluster.conf
# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"# Mongodb数据存放根目录,默认即可,建议不要修改
export MONGODB_DATA_DIR="${BASE_DIR}/basic-data/mongodb"# Mongodb服务primary节点监听地址,建议填写内网地址,根据实际情况填写
export MONGODB_PRIMARY_HOST="172.18.1.28"# Mongodb服务primary节点映射宿主机端口,端口不冲突情况下,建议不修改
export MONGODB_PRIMARY_PORT="17001"# Mongodb服务secondary节点监听地址,建议填写内网地址,根据实际情况填写
export MONGODB_SECONDARY_HOST="172.18.1.42"# Mongodb服务secondary节点映射宿主机端口,端口不冲突情况下,建议不修改
export MONGODB_SECONDARY_PORT="17002"# Mongodb服务arbiter节点监听地址,建议填写内网地址,根据实际情况填写
export MONGODB_ARBITER_HOST="172.18.1.134"# Mongodb服务arbiter节点映射宿主机端口,端口不冲突情况下,建议不修改
export MONGODB_ARBITER_PORT="17003"# Mongodb副本集群管理用户账号,根据实际情况填写
export MONGODB_ADMIN_USER="lolaage"# mongodb副本集群管理账号密码,根据实际情况填写
export MONGODB_ADMIN_PASSWORD="V6n%GNGesBZ7MH3P"# Mongodb读写用户账号,默认即可,建议不要修改
export MONGODB_POSSECU_USER="lolaage"# Mongodb读写用户密码,默认即可,建议不要修改
export MONGODB_POSSECU_PASSWORD="V6n%GNGesBZ7MH3P"
4、执行部署
说明:根据cluster.conf规划,分别在mongodb副本集群节点上执行部署。部署是有顺序的,优先级为arbiter>secondary>primary。
# 1、在k8s-master-134上部署master节点
[root@k8s-master-134 mongodb]# ./op.sh build arbiter# 2、在k8s-master-42上部署slave节点
[root@k8s-master-42 mongodb]# ./op.sh build secondary# 3、在k8s-master-28上部署sentinel节点
[root@k8s-master-28 mongodb]# ./op.sh build primary
5、检查集群状态
[root@k8s-master-28 mongodb]# cd tools/
[root@k8s-master-28 tools]# ./auto_connect.sh connect primary
mongodb_cluster:PRIMARY> rs.status();
如下图所示:
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《Linux运维篇:Linux系统运维指南》