Operations
Backup And Restores
Custom Secret
Monitoring
tpl
Redis Replication involves a primary (master) node that handles writes and one or more replica (slave) nodes that replicate data from the master for read scaling and failover.
Use Cases
Before proceeding, ensure the following:
kubectl create ns demo
namespace/demo created
apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
name: redis-replication
namespace: demo
spec:
terminationPolicy: Delete
clusterDef: redis
topology: replication
componentSpecs:
- name: redis
serviceVersion: "7.2.4"
disableExporter: false
replicas: 2
resources:
limits:
cpu: '0.5'
memory: 0.5Gi
requests:
cpu: '0.5'
memory: 0.5Gi
volumeClaimTemplates:
- name: data
spec:
storageClassName: ""
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
- name: redis-sentinel
replicas: 3
resources:
limits:
cpu: '0.5'
memory: 0.5Gi
requests:
cpu: '0.5'
memory: 0.5Gi
volumeClaimTemplates:
- name: data
spec:
storageClassName: ""
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
Key Configuration Details:
clusterDef: redis
: Specifies the ClusterDefinition CR for the cluster.topology: replication
: Configures the cluster to use replication topology.componentSpecs
: Defines the components in the cluster:
serviceVersion: 7.2.4
: Specifies the version of the Redis service to be deployed.Once the cluster is deployed, check its status:
kubectl get cluster redis-replication -n demo -w
Expected Output:
NAME CLUSTER-DEFINITION TERMINATION-POLICY STATUS AGE
redis-replication redis Delete Running 66s
kubectl get component redis-replication-redis -n demo
Expected Output:
NAME DEFINITION SERVICE-VERSION STATUS AGE
redis-replication-redis redis-7-1.0.0 7.2.4 Running 90s
Check pods and their roles
kubectl get pods -l app.kubernetes.io/instance=redis-replication -L kubeblocks.io/role -n demo
Expected Output:
NAME READY STATUS RESTARTS AGE ROLE
redis-replication-redis-0 3/3 Running 0 3m38s primary
redis-replication-redis-1 3/3 Running 0 3m16s secondary
redis-replication-redis-sentinel-0 2/2 Running 0 4m35s
redis-replication-redis-sentinel-1 2/2 Running 0 4m17s
redis-replication-redis-sentinel-2 2/2 Running 0 3m59s
To remove all resources created during this tutorial:
kubectl delete cluster redis-replication -n demo
kubectl delete ns demo