Small command utility that:
-
Given a redis sentinel server listening on
SENTINEL_PORT, keeps asking it for the address of a master namedNAME -
Proxies all tcp requests that it receives on
PORTto that master
Usage:
./redis-sentinel-proxy -listen IP:PORT -sentinel :SENTINEL_PORT -master NAME
| Environment Variables | Description | Required | Default |
|---|---|---|---|
| LISTEN | IP and Port to bind the proxy to | :9999 | |
| SENTINEL | sentinel server and port to connect to, or list | :26379 | |
| MASTER | master group name | mymaster | |
| USERNAME | username to authenticate with if using v6 acls | - | |
| PASSWORD | password to authenticate with to sentinel | - | |
| REDIS_PASSWORD | password to authenticate with to redis if different from sentinel | - | |
| DEBUG | debug output | false | |
| TIMEOUTMS | timeout for sentinel and master connections | 2000 | |
| CHECKMS | poll time to check sentinel for master changes, set to 0 to disable checks | 250 | |
| EVENTLISTENER | subscribe to master changes from sentinal | false |
Edit kubernetes/redis-sentinel-proxy-deployment.yaml:
vim kubernetes/redis-sentinel-proxy-deployment.yaml
...
args:
- "-master"
- "primary"
- "-sentinel"
- "redis-sentinel.$(NAMESPACE):26379" # change this to the sentinel addressCreate redis-sentinel-proxy-deployment that uses redis-sentinel-proxy:
kubectl apply -f kubernetes/redis-sentinel-proxy-deployment.yaml
deployment "redis-sentinel-proxy" configuredCheck if deployment is running:
kubectl get pods
redis-sentinel-proxy-2064359825-s4n0k 1/1 Running 0 1dExpose redis-sentinel-proxy-deployment:
kubectl apply -f kubernetes/redis-sentinel-proxy-service.yaml