helm部署Redis哨兵分布式集群
Redis Sentinel集群
介绍
Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现、故障自动转移、配置中心和客户端通知。
如下图:
Redis Sentinel 故障转移过程:
从这张图中我们能看到主节点挂掉了,原先的主从复制也断开了,客户端和损坏的主节点也断开了。从节点被提升为新的主节点,其它从节点开始和新的主节点建立复制关系。客户端通过新的主节点继续进行交互。Sentinel 会持续监控已经挂掉了主节点,待它恢复后,集群会调整为下面这张图。
一、部署redis哨兵集群
官方chart地址:https://github.com/helm/charts/tree/master/stable/redis-ha
集群说明:
By default this chart install 3 pods total:
- one pod containing a redis master and sentinel container (optional prometheus metrics exporter sidecar available)
- two pods each containing a redis slave and sentinel containers (optional prometheus metrics exporter sidecars available)
1)编写values.yaml(注意我这里的storageClass是已经搭好的nfs存储)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
image: repository: redis tag: 5.0.5 pullPolicy: IfNotPresent redis: resources: requests: memory: 200Mi cpu: 100m limits: memory: 700Mi sentinel: resources: requests: memory: 200Mi cpu: 100m limits: memory: 200Mi persistentVolume: enabled: true storageClass: "managed-nfs-storage" accessModes: - ReadWriteOnce size: 10Gi |
2)安装
1
|
$ helm install -f values.yaml stable /redis-ha --name redis-ha- test --namespace sscp- test |
结果: