docker-compose 安装redis哨兵模式(1主2从3哨兵)

1.docker-compose安装redis1主2从请点击

上面我已经部署了redis一主2从  三个服务器 192.168.0.11,192.168.0.12,192.168.0.13

3哨兵的话我是放在同一个服务器192.168.0.11上面去监听节点

目录接口  

docker-compose 安装redis哨兵模式(1主2从3哨兵)_第1张图片

 

docker-compose.yml

version: '3.4'
services:
  sentinel1:
    image: redis
    container_name: redis-sentinel-1
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    restart: always
    #network_mode: "host"
    ports:
      - 26379:26379
    volumes:
      - ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf

  sentinel2:
    image: redis
    container_name: redis-sentinel-2
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    restart: always
    ports:
      - 26380:26379
   # network_mode: "host"
    volumes:
      - ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf

  sentinel3:
    image: redis
    container_name: redis-sentinel-3
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    restart: always
    #network_mode: "host"
    ports:
      - 26381:26379
    volumes:
      - ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf

sentinel.conf

port 26379
dir /tmp
sentinel monitor mymaster 192.168.0.11 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
#注意这个是对应之前部署redis的密码 要保持一直 否则连接不上
sentinel auth-pass mymaster 123456
sentinel failover-timeout mymaster 10000
sentinel deny-scripts-reconfig yes
bind 0.0.0.0

sentinel1.conf

port 26379
dir "/tmp"
sentinel myid be1648fdb4acb2c1e626a634d19e1e8e48bb5e6b
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.0.11 6379 2
sentinel auth-pass mymaster 123456
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
# Generated by CONFIG REWRITE
sentinel known-replica mymaster 192.168.0.12 6379
sentinel known-replica mymaster 192.168.0.13 6379
sentinel known-sentinel mymaster 192.168.0.11 26381 18dd3f5c502d601b4080049d1f6a35c45f32857a
sentinel known-sentinel mymaster 192.168.0.11 26380 b45ad1f2edfbab085e1fd5fa5eb589bded0d3abf
sentinel current-epoch 0
bind 0.0.0.0

sentinel2.conf

port 26380
dir "/tmp"
sentinel myid b45ad1f2edfbab085e1fd5fa5eb589bded0d3abf
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.0.11 6379 2
sentinel auth-pass mymaster 123456
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-replica mymaster 192.168.0.12 6379
sentinel known-replica mymaster 192.168.0.13 6379
sentinel known-sentinel mymaster 192.168.0.11 26379 be1648fdb4acb2c1e626a634d19e1e8e48bb5e6b
sentinel known-sentinel mymaster 192.168.0.11 26381 18dd3f5c502d601b4080049d1f6a35c45f32857a
sentinel current-epoch 0
bind 0.0.0.0

sentinel3.conf

port 26381
dir "/tmp"
sentinel myid 18dd3f5c502d601b4080049d1f6a35c45f32857a
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.0.11 6379 2
sentinel auth-pass mymaster zeqingev
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-replica mymaster 192.168.0.12 6379
sentinel known-replica mymaster 192.168.0.13 6379
sentinel known-sentinel mymaster 192.168.0.11 26380 b45ad1f2edfbab085e1fd5fa5eb589bded0d3abf
sentinel known-sentinel mymaster 192.168.0.11 26379 be1648fdb4acb2c1e626a634d19e1e8e48bb5e6b
sentinel current-epoch 0
bind 0.0.0.0

2.配置完之后启动哨兵   docker-compose up -d

 

3.进入容器docker exec -it 容器名称 bash

执行redis-cli -p 哨兵端口

docker-compose 安装redis哨兵模式(1主2从3哨兵)_第2张图片

 

 查看主节点状态  出现这个就说明ok了

sentinel master mymaster

docker-compose 安装redis哨兵模式(1主2从3哨兵)_第3张图片

 

查看从节点状态

sentinel slaves mymaster

 查询当前主节点对应的ip

SENTINEL get-master-addr-by-name mymaster

 

4.最后就是验证一下当前主节点宕机之后 会不会切换主节点  过程我就不演示了

步骤:真实的服务器ip我就不暴露 用的都是虚拟ip 192.168.0.11,192.168.0.12,192.168.0.13

首先进入 192.168.0.11目录  (默认是主节点)

使用docker命令docker-compose down  宕机改redis  过个20秒左右  重启改redis docker-compose up -d

执行步骤3下面的操作 最终会看到主节点的ip变为192.168.0.12或者是192.168.0.13  之前的主节点192.168.0.11自动加入从节点

 

 

你可能感兴趣的:(docker,linux)