栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker下搭建Redis 哨兵模式

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker下搭建Redis 哨兵模式

一、安装Docker 基本概念

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
docker包括以下几个组成部分:

镜像(Image)容器(Container)仓库(Repository) 安装准备

安装环境以centos7为例;安装可参考docker官网文档
1、 环境要求
docker要求CentOS 系统的内核版本高于 3.10 ,安装之前首先要验证你的CentOS 版本是否支持 Docker 。
查看你当前的内核版本(建议使用xshell连接虚拟机进行命令操作)

uname -r 

2、更新yum
更新yum(docker与yum版本可能不兼容)

yum update --skip-broken
开始安装

1、使用 yum 安装命令

yum install docker

2、配置阿里加速镜像(配置加速镜像可以更快的拉取镜像)

1、进入阿里云官网,并且登录,点击控制台
2、进入控制台后,点击左上角的产品与服务,再选择容器镜像服务
3、进入容器镜像服务后,点击镜像加速器
4、根据相应要求修改配置文件即可

3、查看安装情况并启动docker

docker -version   //查看docker版本 
Systemctl start docker   //启动 docker
二、搭建Redis集群 准备工作

1、安装docker ,并启动
2、下载Redis配置文件
由于redis容器中没有redis.conf 和sentinel.conf 文件,所以先去官网下载redis的Linux系统安装包(.tart.gz)文件夹,用于配置文件的挂载。

开始安装

1、拉取redis4.0.14版本的镜像

 docker pull redis:4.0.14 

2、创建Redis挂载目录

新建 /docker/redis 文件夹
在redis文件夹下新建/conf ,用于挂载conf文件
在redis文件夹下新建/data ,挂载redis数据文件,防止docker容器损坏而导致数据丢失
在conf文件夹下新建6370、6371、6372三个文件夹用于挂载三个redis容器
将 redis.conf 和 sentinel.conf 文档上传到到6370、6371、6372文件夹中

3、修改Redis配置文件 redis.conf

bind 0.0.0.0 //用于接收所有端口的连接
requirepass “password” //设置redis连接密码
masterauth “password” //设置主从连接的密码

4、执行命令,生成Redis容器(按命令生成redis-6370、redis-6371、redis-6372三个容器)

docker run -p 6370:6379 --name redis-6370 -v /docker/redis/conf/6370.conf:/data/redis/6370.conf -v /docker/redis/conf/sentinel-26370.conf:/data/sentinel/sentinel-26370.conf  -v /docker/redis/data:/data -d docker.io/redis:4.0.14 redis-server /data/redis/6370.conf --appendonly yes

-p:设置端口映射,将容器内的6379映射到虚拟机下的6370端口
-name: 设置容器名称
-v: 设置目录挂载,将虚拟机下的/docker/redis/conf/6370.conf文件挂载到容器data/redis/6370.conf目录下 ,sentinel.conf同理
-d:指出生成容器的镜像
redis-server 启动redis容器
–appendonly yes 设置启动数据同步

设置Redis主从模式

1、查看容器内部IP 172.17.0.X

docker inspect containerID 

2、进入redis容器内

docker exec -ti containerID /bin/bash

3、进入redis客户端

redis-cli 

选择一个redis作为master,其他的redis作为slave
对于作为slave的容器进入客户端执行 slaveof master容器IP 6379(端口号统一为6379)

eg:slaveof 172.17.0.2 6379

4、查看主从模式是否设置成功

auth password    //权限验证;输入密码
info replication    // 查看当前redis的状态信息

对于master会显示slave个数及IP,对于slave会显示master信息
在master客户端执行set k1 v1,存储数据
在slave客户端执行get k1 获得v1,即表示主从模式设置成功

设置哨兵模式

1、进入/docker/redis/conf/637X文件夹下编辑sentinel.conf 文件

删除bind 0.0.0.0
更改 sentinel monitor mymaster 172.17.0.3 6379 1 设置master的IP
增加sentinel auth-pass mymaster password 设置连接master的密码

2、进入redis容器内

docker exec -ti containerID /bin/bash  

3、 执行哨兵配置文件,启动哨兵监控

redis-sentinel sentinel.conf --sentinel

4、测试哨兵模式是否成功
查看运行的docker容器; 停掉master容器

docker ps 
docker stop containerID(master)

查看sentinel运行日志,是否有选举
进入还在运行的redis容器客户端执行info replication 查看状态信息
可以看到新的master被选举出来,即哨兵模式搭建成功

三、整合Springboot

修改springboot项目application.yml配置文件

注释掉host、port配置
增加sentinel:
master: mymaster
nodes: 10.149.137.8:26370,10.149.137.8:26371,10.149.137.8:26372
IP为虚拟机服务器的IP,端口为映射的哨兵端口

其他

修改配置文件,在挂载目录下修改总是不便,且无法观察到哨兵模式是否在运行状态,可以通过在容器中安装相应插件,实现文件编辑和进程查看的功能。

1、先更新apt-get update
2、安装vim编辑器 apt-get install -y vim
3、安装ps命令,查看进程 apt-get install procps

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/728857.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号