docker Redis單機主從哨兵模式切換失敗

九紋龍丶發表於2020-11-01

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

網上找了很多方法都沒能解決問題,有沒有大佬幫忙看一下,感謝!

相關文章