helm部署redis集群 一: 配置: nfs存储:100G 节点1:node1-iot.com 192.168.0.201 节点2:node2-iot.com 192.168.0.202 节点3:node3-iot.com 192.168.0.204 二:部署storageclass [root@master-iot ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master-iot.com Ready master 37h v1.17.0 node1-iot.com Ready <none> 37h v1.17.0 node2-iot.com Ready <none> 37h v1.17.0 node3-iot.com Ready <none> 24m v1.17.0 [root@master-iot ~]# helm install stable/nfs-client-provisioner --set nfs.server=192.168.0.203 --set nfs.path=/opt 注意修改nfs地址和路径 [root@master-iot ~]# kubectl get pods NAME READY STATUS RESTARTS AGE giggly-goose-nfs-client-provisioner-7b94d4dc4f-6dhw4 1/1 Running 0 53m 三:helm部署redis集群 [root@master-iot redis]# cat values.yamlimage:repository: redistag: 5.0.5pullPolicy: IfNotPresentredis:resources:requests:memory: 200Micpu: 100mlimits:memory: 700Misentinel:resources:requests:memory: 200Micpu: 100mlimits:memory: 200MipersistentVolume:enabled: truestorageClass:"nfs-client"accessModes: - ReadWriteOncesize: 10Gi [root@master-iot redis]# helm install stable/redis-ha --name=redis-ha --namespace=redis [root@master-iot redis]# kubectl get all -n redis NAME READY STATUS RESTARTS AGE pod/redis-ha-server-0 2/2 Running 3 24m pod/redis-ha-server-1 2/2 Running 0 24m pod/redis-ha-server-2 2/2 Running 0 24m NAME TYPE CLUSTER-IP EXTERNAL-IPPORT(S) AGE service/redis-ha ClusterIP None <none> 6379/TCP,26379/TCP 24m service/redis-ha-announce-0 ClusterIP 10.96.177.155 <none> 6379/TCP,26379/TCP 24m service/redis-ha-announce-1 ClusterIP 10.96.255.63 <none> 6379/TCP,26379/TCP 24m service/redis-ha-announce-2 ClusterIP 10.96.166.228 <none> 6379/TCP,26379/TCP 24m NAME READY AGE statefulset.apps/redis-ha-server 3/3 24m 四:测试 [root@master-iot redis]# kubectl get svc -n redis NAME TYPE CLUSTER-IP EXTERNAL-IPPORT(S) AGE redis-ha ClusterIP None <none> 6379/TCP,26379/TCP 25m redis-ha-announce-0 ClusterIP 10.96.177.155 <none> 6379/TCP,26379/TCP 25m redis-ha-announce-1 ClusterIP 10.96.255.63 <none> 6379/TCP,26379/TCP 25m redis-ha-announce-2 ClusterIP 10.96.166.228 <none> 6379/TCP,26379/TCP 25m [root@master-iot redis]# redis-cli -h 10.96.166.228 -p 6379 10.96.166.228:6379> INFO replication # Replicationrole:masterconnected_slaves:2min_slaves_good_slaves:2slave0:ip=10.96.255.63,port=6379,state=online,offset=218033,lag=1slave1:ip=10.96.177.155,port=6379,state=online,offset=218174,lag=0master_replid:ebe58c1995af9ee29119744503a20a805aab28aemaster_replid2:7ff4e6ea64e6f76766409679e6f6d18867dfa7f2master_repl_offset:218174second_repl_offset:26098repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:868repl_backlog_histlen:217307 10.96.166.228:6379> set foo1 bar1 OK 10.96.166.228:6379> set foo2 bar2 OK [root@master-iot redis]# redis-cli -h 10.96.255.63 -p 6379 10.96.255.63:6379> KEYS * 1)"foo1" 2)"foo2" 接下来删除一个pod看是否重建 [root@master-iot redis]# kubectl get pods -n redis NAME READY STATUS RESTARTS AGE redis-ha-server-0 2/2 Running 3 32m redis-ha-server-1 2/2 Running 0 32m redis-ha-server-2 2/2 Running 0 32m [root@master-iot redis]# kubectl delete pod redis-ha-server-0 -n redis pod"redis-ha-server-0" deleted [root@master-iot redis]# kubectl get pods -n redis NAME READY STATUS RESTARTS AGE redis-ha-server-0 2/2 Running 0 18s redis-ha-server-1 2/2 Running 0 33m redis-ha-server-2 2/2 Running 0 33m 重建完毕 [root@master-iot redis]# redis-cli -h 10.96.177.155 -p 6379 10.96.177.155:6379> KEYS * 1)"foo1" 2)"foo2" 数据保持一致