How do I select the master Redis pod in this Kubernetes example? How do I select the master Redis pod in this Kubernetes example? kubernetes kubernetes

How do I select the master Redis pod in this Kubernetes example?


How will the 3 pods be distinguishable so that from Kubernetes I know which one is the master?

Kubernetes isnt aware of the master nodes. You can find the pod manually by connecting to it and using:

redis-cli info

You will get lots of information about the server but we need role for our purpose:

redis-cli info | grep ^roleOutput:role: Master

Please note Replication controllers are replaced by Deployments for stateless services. For stateful services use Statefulsets.


Your client Redis library can actually handle this. For example with ioredis:

ioredis guarantees that the node you connected to is always a master even after a failover.

So, you actually connect to a redis-sentinel instead of a redis-client.


We need to do the same thing and tried different things like modifying chart. Finally, just created a simple python docker that does the labeling and created chart that expose the master redis as service. This periodically checked the pods create for redis-ha and label them according to their role ( master/ slave)

It uses the same sentinel commands to find the master/slave.

helm chart redis-pod-labeler heresource repo