容器部署 redis 哨兵集群 【问题笔记】

文章讲述了在RedisSentinel模式下遇到的两个问题:1)Sentinel启动时因主机名解析错误导致的报错,解决方法是在sentinel.conf中启用resolve-hostnames和announce-hostnames;2)Master节点故障后,Sentinel无法正确切换从节点为主节点,可能原因是网络不通或实例地址错误,解决方案涉及配置replica-announce-ip和replica-announce-port来确保正确的实例信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.哨兵模式 (sentinel) 启动时报错:Can`t resolve instance hostnames

2.哨兵模式下 master 节点崩掉后无法切换从节点为master节点


1.哨兵模式 (sentinel) 启动时报错:Can`t resolve instance hostnames

报错原因分析:

只有 6.2 以上版本的 sentinel 才能解析主机名,但默认不启用。

解决方案:

sentinel.conf 配置文件添加:

sentinel resolve-hostnames yes
sentinel announce-hostname yes

 

参考:使用docker启动redis sentinel 无法使用服务名访问redis_docker 服务名访问_小光头发多的博客-CSDN博客

2.哨兵模式下 master 节点崩掉后无法切换从节点为master节点

原因分析:

容器部署时,网络不通,无法获取实例地址(显示的是两个错误的地址)

 参考:Redis master is getting wrong ip, port of slave in kubernetes redis-sentinel - Stack Overflow

 解决方案:

 

参考:

Master detects wrong IP for the slave nodes · Issue #248 · docker-library/redis · GitHub

in a K8s deployment, Sentinel Can't update the IP of the old master when the old master get back online again with different IP · Issue #8300 · redis/redis · GitHub

Redis-Sentinel 如何开启域名解析 - 掘金

① 在 sentinel.conf 中 开启 resolve-hostnames and announce-hostnames

sentinel resolve-hostnames yes
sentinel announce-hostnames yes

② 在每个实例配置文件(redis.conf /redis_slave.conf)加上 replica-announce-ip 和 replica-announce-port

replica announce-ip <ip>
replica announce-port <port>

参考:Redis-Sentinel 如何开启域名解析 - 掘金

redis 官网:High availability with Redis Sentinel | Redis

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值