【Docker】redis 使用 docker 部署哨兵模式,sentinel 发现不了从机
如题所述,使用docker来测试部署redis的哨兵模式,哨兵发现不了从机。主从架构是没有问题的,从机能正确的从主节点同步数据,主界面也能看到当前有多少从节点。
启动了一个主节点,两个从节点,没有配置密码,可以正常运行
docker run -d -p 6379:6379 --name_master redis -v /usr/local/redis:/etc/redis redis redis-server /etc/redis/redis.confdocker run -d -p 6380:6379 --name redis_slave1 -v /usr/local/redis:/etc/redis redis redis-server /etc/redis/redis.conf
docker run -d -p 6381:6379 --name redis_slave1 -v /usr/local/redis:/etc/redis redis redis-server /etc/redis/redis.conf
然后分别进入两个从节点指定主节点的ip和端口
这样就完成了主从架构
然后启动哨兵
docker run -d -p 26379:26379 --name redis_sentinel1 -v /usr/local/redis:/etc/redis redis redis-sentinel /etc/redis/sentinel.conf
配置文件内容如下:
protected-mode nobind 0.0.0.0
port 26379
daemonize no
pidfile "/var/run/redis-sentinel.pid"
logfile ""
dir "/tmp"
sentinel monitor mymaster 192.168.99.100 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 180000
192.168.99.100 是我的 docker 虚拟机的ip地址,我是windows 10系统。 整个配置就是这样,哨兵可以正常启动,但是在redis_sentinel1中使用命令行执行info命令,查看结果如下:
只显示一个从节点,而且这个从节点还不是之前启动的两个从节点中的任何一个。
整了一个晚上都没搞好,哪位大神知道什么地方有问题,不胜感激
回答
找到原因了,因为集群不仅需要开放redis端口还需要开放集群总线端口,
例如:redis端口为6379,则集群总线端口为16379
redis端口为6380,则集群总线端口为16380
所以在创建docker容器的时候同时开放集群总线端口就好了。如果是在一台机器部署,则可以修改redis端口,例如redis master的端口是6379,则修改从机端口为6380,这样就OK了
以上是 【Docker】redis 使用 docker 部署哨兵模式,sentinel 发现不了从机 的全部内容, 来源链接: utcz.com/a/78785.html