如何在kubernetes中配置Spring redis sentinel
我有一个redis sentinel主从设置,有1个主设备和3个从设备,这是在Kubernetes环境中。在spring莴苣配置中,我必须用端口号指定sentinels URL。我应该如何为每个哨兵指定URL?指定IP和端口。在本地可以,但在k8s中,我应该如何配置?我用安装了设置。下面是如何在本地完成的如何在kubernetes中配置Spring redis sentinel,kubernetes,redis,spring-data-redis,lettuce,redis-sentinel,Kubernetes,Redis,Spring Data Redis,Lettuce,Redis Sentinel,我有一个redis sentinel主从设置,有1个主设备和3个从设备,这是在Kubernetes环境中。在spring莴苣配置中,我必须用端口号指定sentinels URL。我应该如何为每个哨兵指定URL?指定IP和端口。在本地可以,但在k8s中,我应该如何配置?我用安装了设置。下面是如何在本地完成的 @Bean public RedisConnectionFactory lettuceConnectionFactory() { RedisSentinelConfiguration
@Bean
public RedisConnectionFactory lettuceConnectionFactory() {
RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
.master("mymaster")
.sentinel("127.0.0.1", 26379)
.sentinel("127.0.0.1", 26380);
return new LettuceConnectionFactory(sentinelConfig);
}
谢谢在启用哨兵的情况下安装头盔图表
helm install my-release bitnami/redis --set sentinel.enabled=true
将创建一个名为my release redis的服务,并可通过my release redis.namespacename.svc.cluster.local:26379从任何名称空间和同一名称空间访问该服务。使用
my release redis:26379
首先,使用bitnami helm图表是正确的方法事情
虽然有点不同的实现方式,但以下是我们如何实现相同的主从设置并避免上述问题,同时确保我们所见证的最大可用性(主从停机时间少于2秒)
- 我们为主人和奴隶做了两件事
- 在从机和主机之间共享的PV PVC,其中只有主机可以写入,而从机只能从PV读取
- 通过这种方式,我们可以确保在为从机提供的无头服务之后,始终有1个pod在为主机运行,N个副本在运行
在应用程序中,从属URL和主URL总是不同的,因此确保了清晰的“写”和“读”隔离,提高了系统的稳定性,几乎没有读取故障。我知道创建了我的reelase redis服务。但是我应该在我的sentinel()中提供什么方法作为参数。我应该为每个sentinel pod重复服务名称和端口还是只重复一次?您可以使用服务名称一次。在幕后,它将连接到一个PodsHank以进行响应。但是,当我安装图表时,redis将有两个服务。一个是redis,另一个是redis-headless。我的理解是我应该使用headless svc作为url参数。对吗?如果你看helm安装输出,它说明了如何访问sentinel,我想我在那里看到了redis,而不是headless