You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
i'm facing an issue with deployment of tb-integration-executor and redis sentinel. I was able to deploy tb-node with sentinel configured
(even tho some important information is missing in the TB Core component docs) with the following StatefulSet env vars:
So after seeing that the tb-integration-executor also specifies redis as a parameters in the minikube deployment yaml files. I thought i could just copy this configuration and it will work. But to my surprise it didn't.
When is set my thingsboard.yaml for the integration-executor env vars like this:
Caused by: java.lang.IllegalArgumentException: Sentinel Master Id must not be null or empty
at org.springframework.util.Assert.hasText(Assert.java:289)
at org.springframework.data.redis.connection.SentinelMasterId.<init>(SentinelMasterId.java:34)
at org.springframework.data.redis.connection.RedisConfiguration$SentinelConfiguration.setMaster(RedisConfiguration.java:357)
at org.thingsboard.server.cache.TBRedisSentinelConfiguration.loadFactory(TBRedisSentinelConfiguration.java:65)
at org.thingsboard.server.cache.TBRedisCacheConfiguration.redisConnectionFactory(TBRedisCacheConfiguration.java:105)
at org.thingsboard.server.cache.TBRedisSentinelConfiguration$$EnhancerBySpringCGLIB$$59e3a0.CGLIB$redisConnectionFactory$31(<generated>)
at org.thingsboard.server.cache.TBRedisSentinelConfiguration$$EnhancerBySpringCGLIB$$59e3a0$$FastClassBySpringCGLIB$$4055d0d5.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
at org.thingsboard.server.cache.TBRedisSentinelConfiguration$$EnhancerBySpringCGLIB$$59e3a0.redisConnectionFactory(<generated>)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 56 common frames omitted
So after looking in some thingsboard code i found that the key to provide redis sentinel master name is: redis.sentinel.master So i thought of env variable would look like this: REDIS_SENTINEL_MASTER, when i tried that in the env vars for the integration-executor i got the following logs:
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: All sentinels down, cannot determine where is sts-redis-master master is running...
at redis.clients.jedis.JedisSentinelPool.initSentinels(JedisSentinelPool.java:293)
at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:217)
at redis.clients.jedis.JedisSentinelPool.<init>(JedisSentinelPool.java:205)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createRedisSentinelPool(JedisConnectionFactory.java:415)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.createPool(JedisConnectionFactory.java:398)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.afterPropertiesSet(JedisConnectionFactory.java:348)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
... 52 common frames omitted
Please bear in mind that this redis sentinel cluster is working fine for the tb-node.
Any help is appreciated, Thank you
Sam
The text was updated successfully, but these errors were encountered:
EDIT:
I was able to finally deploy the integration executor with redis sentinel but i had to change the env variable keys:
REDIS_MASTER -> REDIS_SENTINEL_MASTER
REDIS_SENTINELS -> REDIS_SENTINEL_SENTINELS
I forgot to mention currently we are running TB 3.6.2 as a k8 deployment.
Hello,
i'm facing an issue with deployment of tb-integration-executor and redis sentinel. I was able to deploy tb-node with sentinel configured
(even tho some important information is missing in the TB Core component docs) with the following StatefulSet env vars:
So after seeing that the tb-integration-executor also specifies redis as a parameters in the minikube deployment yaml files. I thought i could just copy this configuration and it will work. But to my surprise it didn't.
When is set my thingsboard.yaml for the integration-executor env vars like this:
the pod logs look like this :
thingsboard-tb-integration-executor-0-1725375316634848100.log
So after looking in some thingsboard code i found that the key to provide redis sentinel master name is: redis.sentinel.master So i thought of env variable would look like this: REDIS_SENTINEL_MASTER, when i tried that in the env vars for the integration-executor i got the following logs:
thingsboard-tb-integration-executor-0-1725375710414817500.log
Please bear in mind that this redis sentinel cluster is working fine for the tb-node.
Any help is appreciated, Thank you
Sam
The text was updated successfully, but these errors were encountered: