当前位置: 首页 > article >正文

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

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

更多详细内容请参考:《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系统运维指南》


http://www.kler.cn/a/371364.html

相关文章:

  • GPT避坑指南:如何辨别逆向、AZ、OpenAI官转
  • CheckPointUtilsTest
  • Golang | Leetcode Golang题解之第517题超级洗衣机
  • PHP内存马:不死马
  • Android中常用adb命令
  • NAT技术和代理服务器
  • angular使用http实现get和post请求
  • TimyNote:轻便高效的跨平台笔记工具
  • 如何使用Photoshop修改图标为纯色
  • MATLAB细胞干扰素信号矩阵和微分方程计算分析
  • 【06-并发控制:互斥 (1)-课堂示例代码运行】 modelchecker的使用封装 Peterson算法的修改和验证
  • 迈威通信西安采矿展大放异彩,驱动煤矿智能转型加速跑
  • 面试中的一个基本问题:如何在数据库中存储密码?
  • Codeforces Round 909 (Div. 3)
  • selenium解决调用Chrome str’ object has no attribute ‘capabilities’ Process finished
  • redis修改配置文件配置密码开启远程访问后台运行
  • Vscode中Github Copilot无法使用
  • 攻防世界的新手web题解
  • web前端多媒体标签设置(图片,视频,音频)以及图片热区(usemap)的设置
  • C++:多态(原理篇)
  • 交流调速系统分类
  • 如何从PPT中导出600dpi的高清图
  • 在 Vue 中如何自动导入项目中的 less 和 scss 变量和文件
  • macOS开发环境配置与应用开发教程
  • java 泛型返回接口
  • vue使用rem适配各种分辨率设备