Gateway connection to Redis in Kubernetes

Thanks @zaid !

I finally managed to install the bitnami/redis-cluster version you suggested. I was previously using values.yml option image.tag as suggested in the documentation redis-cluster 8.4.3 · bitnami/bitnami
However, cleaning previous installation and this command did the trick

$ helm install redisbit -f values.yml bitnami/redis-cluster --version v7.6.4 --namespace tyk

and installed Redis 6.2.7

On the other hand, I modified tyk configmap to point to redis-cluster service as this (I had same results configuring the six instances separately):

...
      "storage": {
        "type": "redis",
        "enable_cluster": true,
        "addrs": [
            "redisbit-redis-cluster.tyk.svc.cluster.local:6379"
            ]
        ,
        "database": 0,
        "optimisation_max_idle": 2000,
        "optimisation_max_active": 4000,
        "username": "",
        "password": "",
        "use_ssl": false					   
      }
...

After deploying tyk-gateway, the error has changed!:

time="Oct 10 12:14:41" level=debug msg="Using /opt/tyk-gateway/tyk.conf for configuration" prefix=main
time="Oct 10 12:14:41" level=info msg="Tyk API Gateway 4.2.1" prefix=main
time="Oct 10 12:14:41" level=warning msg="Insecure configuration allowed" config.allow_insecure_configs=true prefix=checkup
time="Oct 10 12:14:41" level=warning msg="Default secret should be changed for production." config.secret=352d20ee67be67f6340b4c0605b044b7 prefix=checkup
time="Oct 10 12:14:41" level=error msg="Could not set version in versionStore" error="storage: Redis is either down or was not configured" prefix=main
time="Oct 10 12:14:41" level=debug msg="Notifier will not work in hybrid mode" prefix=main
time="Oct 10 12:14:41" level=debug msg="No Primary instance found, assuming control" prefix=host-check-mgr
time="Oct 10 12:14:41" level=error msg="cannot set key in pollerCacheKey" error="storage: Redis is either down or was not configured"
time="Oct 10 12:14:41" level=info msg="Starting Poller" prefix=host-check-mgr
time="Oct 10 12:14:41" level=debug msg="---> Initialising checker" prefix=host-check-mgr
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Config:TriggerLimit: 3"
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Config:Timeout: ~10"
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Config:WorkerPool: 2"
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Init complete"
time="Oct 10 12:14:41" level=debug msg="---> Starting checker" prefix=host-check-mgr
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Starting..."
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Check loop started..."
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Host reporter started..."
time="Oct 10 12:14:41" level=debug msg="---> Checker started." prefix=host-check-mgr
time="Oct 10 12:14:41" level=info msg="PIDFile location set to: /var/run/tyk/tyk-gateway.pid" prefix=main
time="Oct 10 12:14:41" level=warning msg="The control_api_port should be changed for production" prefix=main
time="Oct 10 12:14:41" level=debug msg="Initialising default org store" prefix=main
time="Oct 10 12:14:41" level=info msg="Initialising Tyk REST API Endpoints" prefix=main
time="Oct 10 12:14:41" level=error msg="Connection to Redis failed, reconnect in 10s" error="storage: Redis is either down or was not configured" prefix=pub-sub
time="Oct 10 12:14:41" level=debug msg="Creating new Redis connection pool"
time="Oct 10 12:14:41" level=info msg="--> [REDIS] Creating cluster client"
time="Oct 10 12:14:41" level=debug msg="Loaded API Endpoints" prefix=main
time="Oct 10 12:14:41" level=info msg="--> Standard listener (http)" port=":8080" prefix=main
time="Oct 10 12:14:41" level=warning msg="Starting HTTP server on:[::]:8080" prefix=main
time="Oct 10 12:14:41" level=info msg="Initialising distributed rate limiter" prefix=main
time="Oct 10 12:14:41" level=debug msg="DRL: Setting node ID: solo-2519ac5b-06eb-4b27-8da1-788d4fefd872|tyk-gateway-76fc9686bb-297wb"
time="Oct 10 12:14:41" level=info msg="Tyk Gateway started (4.2.1)" prefix=main
time="Oct 10 12:14:41" level=info msg="--> Listening on address: (open interface)" prefix=main
time="Oct 10 12:14:41" level=info msg="--> Listening on port: 8080" prefix=main
time="Oct 10 12:14:41" level=info msg="--> PID: 1" prefix=main
time="Oct 10 12:14:41" level=info msg="Loading policies" prefix=main
time="Oct 10 12:14:41" level=info msg="Policies found (1 total):" prefix=main
time="Oct 10 12:14:41" level=debug msg=" - default" prefix=main
time="Oct 10 12:14:41" level=info msg="Loading API Specification from /opt/tyk/apps/app_sample.json"
time="Oct 10 12:14:41" level=debug msg="Checking for transform paths..."
time="Oct 10 12:14:41" level=debug msg="Checking for transform paths..."
time="Oct 10 12:14:41" level=info msg="Detected 1 APIs" prefix=main
time="Oct 10 12:14:41" level=info msg="Loading API configurations." prefix=main
time="Oct 10 12:14:41" level=info msg="Tracking hostname" api_name="Tyk Test API" domain="(no host)" prefix=main
time="Oct 10 12:14:41" level=info msg="Initialising Tyk REST API Endpoints" prefix=main
time="Oct 10 12:14:41" level=debug msg="Loaded API Endpoints" prefix=main
time="Oct 10 12:14:41" level=info msg="API bind on custom port:0" prefix=main
time="Oct 10 12:14:41" level=debug msg="Initializing API" api_id=1 api_name="Tyk Test API" org_id=default
time="Oct 10 12:14:41" level=debug msg="Batch requests enabled for API" prefix=main
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=VersionCheck org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=RateCheckMW org_id=default
time="Oct 10 12:14:41" level=info msg="Checking security policy: Token" api_id=1 api_name="Tyk Test API" org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=AuthKey org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=KeyExpired org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=AccessRightsCheck org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=GranularAccessMiddleware org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=RateLimitAndQuotaCheck org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=VersionCheck org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=KeyExpired org_id=default
time="Oct 10 12:14:41" level=debug msg=Init api_id=1 api_name="Tyk Test API" mw=AccessRightsCheck org_id=default
time="Oct 10 12:14:41" level=debug msg="Rate limit endpoint is: /tyk-api-test/tyk/rate-limits" api_id=1 api_name="Tyk Test API" org_id=default
time="Oct 10 12:14:41" level=debug msg="Setting Listen Path: /tyk-api-test/" api_id=1 api_name="Tyk Test API" org_id=default
time="Oct 10 12:14:41" level=info msg="API Loaded" api_id=1 api_name="Tyk Test API" org_id=default prefix=gateway server_name=-- user_id=-- user_ip=--
time="Oct 10 12:14:41" level=debug msg="Checker host list" prefix=main
time="Oct 10 12:14:41" level=info msg="Loading uptime tests..." prefix=host-check-mgr
time="Oct 10 12:14:41" level=debug msg="--- Setting tracking list up" prefix=host-check-mgr
time="Oct 10 12:14:41" level=debug msg="Reset initiated" prefix=host-check-mgr
time="Oct 10 12:14:41" level=debug msg="[HOST CHECKER] Checker reset queued!"
time="Oct 10 12:14:41" level=debug msg="Checker host Done" prefix=main
time="Oct 10 12:14:41" level=info msg="Initialised API Definitions" prefix=main
time="Oct 10 12:14:41" level=info msg="API reload complete" prefix=main
time="Oct 10 12:14:41" level=info msg="Starting gateway rate limiter notifications..."
time="Oct 10 12:14:41" level=debug msg="Creating new Redis connection pool"
time="Oct 10 12:14:41" level=info msg="--> [REDIS] Creating cluster client"
time="Oct 10 12:14:41" level=debug msg="Creating new Redis connection pool"
time="Oct 10 12:14:41" level=info msg="--> [REDIS] Creating cluster client"
time="Oct 10 12:14:50" level=debug msg="[HOST CHECKER] Host list reset"
time="Oct 10 12:14:51" level=debug msg="Error trying to get value:redis: nil"
time="Oct 10 12:14:51" level=debug msg="No Primary instance found, assuming control" prefix=host-check-mgr
time="Oct 10 12:15:01" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:15:11" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:15:21" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:15:31" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:15:41" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:15:51" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:16:01" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:16:11" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:16:21" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:16:31" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:16:41" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr
time="Oct 10 12:16:51" level=debug msg="Primary instance set, I am master" prefix=host-check-mgr

(and againg, and again…)
Well, I am not really sure if this is an error, as I am on debug level. However I tryed to create a custom key following this API Key Management just to check whats going on:

root@dnsutils:/# curl 10.244.2.57:8080/hello
{"status":"pass","version":"4.2.1","description":"Tyk GW","details":{"redis":{"status":"pass","componentType":"datastore","time":"2022-10-10T12:36:41Z"}}}
root@dnsutils:/# curl 10.244.2.57:8080/api/keys/mycustomkey -H 'x-tyk-authorization: 352d20ee67be67f6340b4c0605b044b7' -H 'Content-Type: application/json'  -d @token.json
Not Foundroot

I will try to dig into this…

Thank you very much