kubernetes中的redis ha无法故障切换回主服务器

kubernetes中的redis ha无法故障切换回主服务器,redis,kubernetes,redis-ha,Redis,Kubernetes,Redis Ha,我正在尝试创建一个简单的redis高可用性设置,包括1个主设备、1个从设备和2个Sentinel 当从redis master故障切换到redis slave时,该设置工作正常。 当redis-master恢复时,它会将自己正确注册为新redis-slavemaster的从机 但是,当作为主设备的redis slave关闭时,redis master无法作为主设备返回。redis master的日志进入循环,显示: 1:S 12 Dec 11:12:35.073 * MASTER <-&g

我正在尝试创建一个简单的redis高可用性设置,包括1个主设备、1个从设备和2个Sentinel

当从
redis master
故障切换到
redis slave
时,该设置工作正常。 当
redis-master
恢复时,它会将自己正确注册为新
redis-slave
master的从机

但是,当作为主设备的
redis slave
关闭时,
redis master
无法作为主设备返回。redis master的日志进入循环,显示:

1:S 12 Dec 11:12:35.073 * MASTER <-> SLAVE sync started
1:S 12 Dec 11:12:35.073 * Non blocking connect for SYNC fired the event.
1:S 12 Dec 11:12:35.074 * Master replied to PING, replication can continue...
1:S 12 Dec 11:12:35.075 * Trying a partial resynchronization (request 684581a36d134a6d50f1cea32820004a5ccf3b2d:285273).
1:S 12 Dec 11:12:35.076 * Master is currently unable to PSYNC but should be in the future: -NOMASTERLINK Can't SYNC while not connected with my master
1:S 12 Dec 11:12:36.081 * Connecting to MASTER 10.102.1.92:6379
1:S 12 Dec 11:12:36.081 * MASTER <-> SLAVE sync started
1:S 12 Dec 11:12:36.082 * Non blocking connect for SYNC fired the event.
1:S 12 Dec 11:12:36.082 * Master replied to PING, replication can continue...
1:S 12 Dec 11:12:36.083 * Trying a partial resynchronization (request 684581a36d134a6d50f1cea32820004a5ccf3b2d:285273).
1:S 12 Dec 11:12:36.084 * Master is currently unable to PSYNC but should be in the future: -NOMASTERLINK Can't SYNC while not connected with my master
1:S 12 Dec 11:12:37.087 * Connecting to MASTER 10.102.1.92:6379
1:S 12 Dec 11:12:37.088 * MASTER <-> SLAVE sync started
...
redis主配置 redis从配置
事实证明,问题与使用主机名而不是IP有关:

slaveof redis-master.fp8-cache 6379
...
slave-announce-ip redis-slave.fp8-cache

因此,当主设备作为从设备返回时,sentinel显示现在有两个从设备:一个具有ip地址,另一个具有主机名。不确定这两个从属条目(指向同一个Redis服务器)是如何导致上述问题的。现在,我将配置更改为使用IP地址而不是主机名,Redis HA工作正常。

你能分享一下你是如何更改配置的吗?不仅仅是配置。我使用
sed-I“s/\[master\u ip\]/$master\u ip/g”/etc/redis/redis.conf
脚本在pod启动时更新配置<代码>[master_ip]输入配置中,
$master_ip
是主机的实际ip地址。
requirepass test1234
masterauth test1234
dir /data

tcp-keepalive 60
maxmemory-policy noeviction
appendonly no
bind 0.0.0.0
save 900 1
save 300 10
save 60 10000

slave-announce-ip redis-master.fp8-cache
slave-announce-port 6379
requirepass test1234
slaveof redis-master.fp8-cache 6379
masterauth test1234
dir /data

tcp-keepalive 60
maxmemory-policy noeviction
appendonly no
bind 0.0.0.0
save 900 1
save 300 10
save 60 10000

slave-announce-ip redis-slave.fp8-cache
slave-announce-port 6379
slaveof redis-master.fp8-cache 6379
...
slave-announce-ip redis-slave.fp8-cache