-
Notifications
You must be signed in to change notification settings - Fork 16
Design and infrastructure
The Redis operator currently supports the management of a Redis-cluster database, replication only. The minimal working setup that can be created and managed is made of 6 nodes
The RedisCluster CR is similar to a StatefulSet - it describes the layout of the Redis cluster in terms of leader and replica node count.
The operator supports rolling updates. A rolling restart is applyed to each leader-follower group one my one, always in ascending order of the leader-number.
The following steps are done by the RedisCluster controller during an update, sequentially for each leader:
- Recreate the follower pods of a leader using the new Redis image
- Wait until data sync between followers and leader is complete
- Update the leader
- Do a
FAILOVER
operation on one of the followers so it is promoted as new leader - Recreate the leader pod and add it as a follower of the node promoted during the previous step
- Wait for data sync
- Do a
FAILOVER
operation on the updated leader
- Do a
MaxSurge
and MaxUnavailable
options are currently not supported.
-
The operator uniquely identifies all Redis nodes by their IP addresses. This introduces the following limitations:
- All pods must run on the same network and have different IPs.
- Only one Redis instance can run on a pod.
-
Only one custom resource managed per namespace. Each Redis cluster will need its own operator deployment and unique select label for the pods.
-
No cross-namespace support, the RedisCluster and operator deployment should be in the same namespace.