Today we are playing around with Redis, Here we use helm to install Redis cluster, then validate statefulset storage and cluster availability.
Typical Redis cluster (3 master + 3 slave for slots) Topology:
Helm install bitnami/redis-cluster
helm repo add bitnami https://charts.bitnami.com/bitnami
helm pull bitnami/redis-cluster
kubectl create ns redis
helm install zz-redis bitnami/redis-cluster -n redis
Redis-cluster status
kubectl get po | grep zz-redis
zz-redis-redis-cluster-0 1/1 Running 3 (33m ago) 36m
zz-redis-redis-cluster-1 1/1 Running 1 (32m ago) 36m
zz-redis-redis-cluster-2 1/1 Running 1 (33m ago) 36m
zz-redis-redis-cluster-3 1/1 Running 1 (33m ago) 36m
zz-redis-redis-cluster-4 1/1 Running 1 (33m ago) 36m
zz-redis-redis-cluster-5 1/1 Running 1 (33m ago) 36m
kubectl get svc
zz-redis-redis-cluster ClusterIP 10.96.68.34 <none> 6379/TCP 37m
zz-redis-redis-cluster-headless ClusterIP None <none> 6379/TCP,16379/TCP 37m
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
redis-data-zz-redis-redis-cluster-0 Bound pvc-81f69c15-2f59-4704-9fec-c3ab217ebca5 1Gi RWO rook-ceph-block 37m
redis-data-zz-redis-redis-cluster-1 Bound pvc-871dbb68-a78b-48a8-8feb-8726eb8a795e 1Gi RWO rook-ceph-block 37m
redis-data-zz-redis-redis-cluster-2 Bound pvc-afd8c82e-c314-426a-a3cd-3c8d10b42bb1 1Gi RWO rook-ceph-block 37m
redis-data-zz-redis-redis-cluster-3 Bound pvc-e8fd5d47-dd60-4358-8cf5-a17d6574bbe2 1Gi RWO rook-ceph-block 37m
redis-data-zz-redis-redis-cluster-4 Bound pvc-04d4f148-b7c1-407e-b9a8-b2fa911405f0 1Gi RWO rook-ceph-block 37m
redis-data-zz-redis-redis-cluster-5 Bound pvc-99e8b2cc-c5d5-4636-a19b-042922eca3cc 1Gi RWO rook-ceph-block 37m
Validate cluster by set key
kubectl exec -it zz-redis-redis-cluster-0 -- sh
redis-cli
info replication
cluster info
cluster nodes
054ff137e9530c0e4d8afd1d00162d01952580de 172.16.122.179:6379@16379 slave 2ebcfdf7e74aa8755250384f7efa466f4d18e9d4 0 1702703474000 3 connected
7cfeb1d88dc3838e600a32c1e233b1c5f05006f1 172.16.58.197:6379@16379 master - 0 1702703473000 2 connected 5461-10922
1e56bad62197062fad465bbcc6b625bea8364db2 172.16.58.224:6379@16379 slave 7cfeb1d88dc3838e600a32c1e233b1c5f05006f1 0 1702703474954 2 connected
7e539b2209581c8375f7fb0aa9eedf5b98754b05 172.16.85.252:6379@16379 slave 889515187dbbb525fd73dc840d5bcad78305645d 0 1702703473947 1 connected
889515187dbbb525fd73dc840d5bcad78305645d 172.16.195.10:6379@16379 myself,master - 0 1702703469000 1 connected 0-5460
2ebcfdf7e74aa8755250384f7efa466f4d18e9d4 172.16.85.229:6379@16379 master - 0 1702703473000 3 connected 10923-16383
127.0.0.1:6379> set dad zack
OK
127.0.0.1:6379> get dad
"zack"
kubectl exec -it zz-redis-redis-cluster-4 -- sh
redis-cli
127.0.0.1:6379> KEYS *
1) "dad"
