docker Redis单机主从哨兵模式切换失败
我用docker映射三个端口6379、6380、6381作为一主二从三个Redis实例,26379、26380、26382作为三台哨兵sentinel。搭建完成后主从模式是生效的,向主机写入、删除数据,从机也会同步进行,但是哨兵模式没有生效。下图是主机和从机的信息:
感觉状态端口啥的都能实现,功能也没什么问题。
我生成sentinel容器的docker指令:
sentinel01:
docker run -it --name redis-sentinel01 -p 26379:26379 -v /usr/local/tangv/redis/sentinel/sentinel01.conf:/usr/local/etc/redis/sentinel.conf -v /usr/local/tangv/redis/sentinel/redis-sentinel01.log:/var/log/redis/sentinel.log -d redis /bin/bash
sentinel02:
docker run -it --name redis-sentinel02 -p 26380:26379 -v /usr/local/tangv/redis/sentinel/sentinel02.conf:/usr/local/etc/redis/sentinel.conf -v /usr/local/tangv/redis/sentinel/redis-sentinel02.log:/var/log/redis/sentinel.log -d redis /bin/bash
sentinel03:
docker run -it --name redis-sentinel03 -p 26381:26379 -v /usr/local/tangv/redis/sentinel/sentinel03.conf:/usr/local/etc/redis/sentinel.conf -v /usr/local/tangv/redis/sentinel/redis-sentinel03.log:/var/log/redis/sentinel.log -d redis /bin/bash
下面是重点:三台sentinel启动后,我kill了主机进程,6379下线了,但是sentinel没能选举出从机提升为主机,查看日志,好像已经监控到主机down机,选举了一个进行切换的sentinel,但是在选择从机提升的时候没有成功,可能是没有找到从机和主机的对应关系。
这是sentinel slaves redis-master指令查看监控的从机信息,没有识别到主机ip端口等:
docker Redis单机主从哨兵模式切换失败
sentinel master redis-master查看好像没什么问题:
docker Redis单机主从哨兵模式切换失败
日志打印是选举从机没有成功:
docker Redis单机主从哨兵模式切换失败
每台sentinel的配置:
port 26379(每台不一样)
daemonize yes
pidfile /var/run/redis-sentinel.pid
logfile “/var/log/redis/sentinel.log”
sentinel announce-ip 172.17.203.***(配不配之都不行)
sentinel announce-port 26379(配不配置都不行)
sentinel monitor redis-master 172.17.203.*** 6379 2
sentinel auth-pass redis-master aaa123
requirepass aaa123
其他是默认配置。
redis.conf配置的话:
主机:
bind 127.0.0.1(注释了,#没显示出来)
protected-mode no
port 6379
daemonize yes
pidfile /var/run/redis_6380.pid(6381)
logfile “/usr/log/redis-master.log”
masterauth aaa123
replica-announce-ip 172.17.203.***(配不配置都试过)
requirepass aaa123
从机:
bind 127.0.0.1(注释了,#没显示出来)
protected-mode no
port 6380(6381)
daemonize yes
logfile “/usr/log/redis-slave01.log”(slave02)
replicaof 172.17.203.*** 6379
masterauth aaa123
replica-announce-ip 172.17.203.***(配不配置都试过)
requirepass aaa123
网上找了很多方法都没能解决问题,有没有大佬帮忙看一下,感谢!