总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《Linux运维篇:Linux系统运维指南》
一、部署背景
由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统,而作为基础组件中的redis针对不同的客户环境需要多次部署集群,作为一个运维工程师,提升工作效率也是工作中的重要一环。所以我觉得有必要针对 X86_64 + ARM64 CPU架构redis 6.2.14容器版 分片集群编写自动化部署工具。
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、支持单实例部署
3、支持单机伪分片集群部署(1个master+1个slave+1个sentinel)
4、支持多机分布式分片集群部署(1个master+1个slave+1个sentinel)
5、支持数据目录、日志目录、端口、密码等参数灵活配置
6、支持数据文件、日志文件、配置文件持久化
7、支持创建、启动、停止、检查、卸载等操作
8、支持一键连接操作
如下图所示:
说明:工具使用非常简单,只需要修改变量文件,就可以快速帮你快速部署redis 6.2.14分片集群。
三、工具下载
基于X86-64+ARM64架构CPU使用docker-compose一键离线部署redis 6.2.14容器版哨兵集群工具
四、部署步骤
说明:单机伪集群是指在单主机部署redis哨兵集群,分布式集群是指在多个不同主机上部署redis哨兵集群,这里部署的是多机分布式哨兵集群。
1、查看帮助命令
2、部署规划
说明:这里使用3台服务器部署哨兵集群。
宿主机IP | 操作系统 | 内核版本 | 节点说明 |
---|---|---|---|
192.168.1.111 | Ubuntu 22.04.2 LTS | 5.15.0-113-generic | master节点 |
192.168.1.112 | Ubuntu 22.04.2 LTS | 5.15.0-113-generic | slave节点 |
192.168.1.113 | Ubuntu 22.04.2 LTS | 5.15.0-113-generic | sentinel节点 |
3、准备一键部署工具包
说明:将一键部署工具包分别上传到redis哨兵集群所有节点上。
4、编辑变量文件
说明:以下操作分别在redis哨兵集群节点的部署工具包中修改cluster.conf文件, 三个节点上cluster.conf文件内容一致。
root@localhost:/opt/redis-sentinel# cp cluster.conf.tpl cluster.conf
root@localhost:/opt/redis-sentinel# cat cluster.conf
# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"
# cpu架构,可选值为<x86_64和aarch64>,根据实际情况修改
export CPU_PLATFROM="x86_64"
# redis版本,默认不修改
export REDIS_VERSION="6.2.14"
# redis哨兵集群之master节点内网ip地址及映射宿主机端口,根据实际情况填写,端口不冲突情况下,建议不修改
export REDIS_MASTER_HOST="192.168.1.111"
export REDIS_MASTER_PORT="7001"
# redis哨兵集群之slave1节点内网ip地址及映射宿主机端口,根据实际情况填写,端口不冲突情况下,建议不修改
export REDIS_SLAVE_HOST="192.168.1.112"
export REDIS_SLAVE_PORT="7002"
# redis哨兵集群之sentinel节点内网ip地址及映射宿主机端口,根据实际情况填写,端口不冲突情况下,建议不修改
export REDIS_SENTINEL_HOST="192.168.1.113"
export REDIS_SENTINEL_PORT="7003"
# redis哨兵集群密码,根据实际情况填写
export REDIS_PASSWORD="2BnAgF51sQypWZYU"
# 数据存放目录,一般为服务器上存储空间最大分区,默认不修改
export REDIS_DATA_DIR="${BASE_DIR}/basic-data/redis-sentinel"
5、执行部署
说明:部署顺序必须为:master节点 > slave节点 > sentinel节点
a、部署master节点(192.168.1.111)
root@localhost:/opt/redis-sentinel# ./op.sh build master
a、部署slave节点(192.168.1.112)
root@localhost:/opt/redis-sentinel# ./op.sh build slave
a、部署sentinel节点(192.168.1.113)
root@localhost:/opt/redis-sentinel# ./op.sh build sentinel
五、其它操作
5.1、启动
说明:分别在对应主机节点上执行。
root@localhost:/opt/redis-sentinel# ./op.sh start master
root@localhost:/opt/redis-sentinel# ./op.sh start slave
root@localhost:/opt/redis-sentinel# ./op.sh start sentinel
5.2、停止
说明:分别在对应主机节点上执行。
root@localhost:/opt/redis-sentinel# ./op.sh stop master
root@localhost:/opt/redis-sentinel# ./op.sh stop slave
root@localhost:/opt/redis-sentinel# ./op.sh stop sentinel
5.3、检查
说明:分别在对应主机节点上执行。
root@localhost:/opt/redis-sentinel# ./op.sh check master
root@localhost:/opt/redis-sentinel# ./op.sh check slave
root@localhost:/opt/redis-sentinel# ./op.sh check sentinel
5.4、卸载
说明:分别在对应主机节点上执行。
root@localhost:/opt/redis-sentinel# ./op.sh clear master
root@localhost:/opt/redis-sentinel# ./op.sh clear slave
root@localhost:/opt/redis-sentinel# ./op.sh clear sentinel
5.5、连接
说明:分别在对应主机节点上执行。
root@localhost:/opt/redis-sentinel# cd tools/
root@localhost:/opt/redis-sentinel/tools# ./auto_connect.sh connect master
root@localhost:/opt/redis-sentinel# cd tools/
root@localhost:/opt/redis-sentinel/tools# ./auto_connect.sh connect slave
root@localhost:/opt/redis-sentinel# cd tools/
root@localhost:/opt/redis-sentinel/tools# ./auto_connect.sh connect sentinel
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:《Linux运维篇:Linux系统运维指南》