helm安装redis+Sentinel集群搭建
一、redis集群特点
数据 在多个Redis节点之间自动分片
sentinel特点:
它的主要功能有以下几点 不时地监控redis是否按照预期良好地运行;
如果发现某个redis节点运行出现状况,能够通知另外一个进程(例如它的客户端);
能够进行自动切换。当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中的一个来作为新的master,其它的slave节点会将它所追随的master的地址改为被提升为master的slave的新地址。
sentinel配置文件详解
参考:https://segmentfault.com/a/1190000002680804
主节点down了,从节点选举机制如下:
https://blog.csdn.net/tr1912/article/details/81265007
二、redis端口
对于每个节点,要使Redis群集正常工作,您需要:
为客户端提供服务的普通Redis TCP端口,例如6379
集群总线例如:(客户端端口+ )
三、安装
3.1 多台机器 创建pv且大于60g,pv.yaml(ps:不能在一台机器运行所有,因为每个pod都有podAntiAffinity:实现每台机器只能有一个redis)
apiVersion: v1
kind: PersistentVolume
metadata:
name: data
labels:
app: redis-ha #pv和pvc测试过,不需要name和labels识别,调度器会为pvc自动选择合适容量的pv
spec:
capacity:
storage: 60Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /opt/data
kubectl create -f pv.yaml
安装启动redis集群
#修改本机path路径,授权用户(1000)具备创建目录权限
helm install --set hostPath.path=/opt --name=redis-ha stable/redis-ha
3.2 单机实现redis集群,需要取消affinity
redis-ha-values-custom.yaml
affinity: {}
启动
helm install --set hostPath.path=/opt --name=redis-ha -f ./redis-ha-values-custom.yaml stable/redis-ha #通过取消affinity单机实现redis集群
看看service文件,每个redis通过本svc识别其他redis
apiVersion: v1
kind: Service
metadata:
labels:
app: redis-ha
chart: redis-ha-3.3.
name: redis-ha-announce-0
namespace: default
spec:
clusterIP: 10.102.130.11
ports:
- name: server
port:
protocol: TCP
targetPort: redis
- name: sentinel
port: 26379
protocol: TCP
targetPort: sentinel
type: ClusterIP
selector:
app: redis-ha
release: redis-ha
statefulset.kubernetes.io/pod-name: redis-ha-server-0
四、测试
kubectl get svc |grep redis,如下
redis-ha ClusterIP None <none> 6379/TCP,26379/TCP 37m
redis-ha-announce-0 ClusterIP 10.102.130.11 <none> 6379/TCP,26379/TCP 37m #默认这个为redis主
redis-ha-announce-1 ClusterIP 10.105.223.197 <none> 6379/TCP,26379/TCP 37m
redis-ha-announce-2 ClusterIP 10.106.29.241 <none> 6379/TCP,26379/TCP 37m
kubectl get pod -o wide|grep redis,如下
redis-ha-server-0 2/2 Running 0 41m 10.244.0.11 hostname-test
redis-ha-server-1 2/2 Running 0 37m 10.244.0.12 hostname-test
redis-ha-server-2 2/2 Running 0 35m 10.244.0.13 hostname-test
进入pod为redis-ha-server-1,容器为sentinel
kubectl exec -it redis-ha-server- -c sentinel sh
容器里面$ redis-cli -h redis-ha-announce-0 -p 26379

容器里面$ redis-cli -h redis-ha-announce- -p 6379
故障转移实验
停止主redis:
#、在主上故障转移测试,使主down掉
redis-cli -h redis-ha-announce- -p debug segfault #、然后进入redis容器或sentinel容器
kubectl exec -it redis-ha-server- -c redis sh
kubectl exec -it redis-ha-server- -c sentinel sh #、容器里面使用redis客户端连接redis服务端
redis-cli -h redis-ha-announce- -p
redis-cli -h redis-ha-announce- -p
#容器里面使用redis客户端连接Sentinel服务端
redis-cli -h redis-ha-announce- -p #、redis查看主从状态
info replication
#sentinel查看状态
INFO Sentinel #5、查看日志
kubectl logs -f redis-ha-server- -c redis
kubectl logs -f redis-ha-server- -c redis
kubectl logs -f redis-ha-server- -c redis
#主前任主上查看redis主从状态如下,10.106.29.241是第三台redis的ip,说转换成功了

#测试添加一台redis实验,如下:
1、修改文件redis-ha-values-upgrade.yaml
replicas:
affinity: {}
hostPath:
path:/opt
2、创建pv4
apiVersion: v1
kind: PersistentVolume
metadata:
name: data03
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /opt/data03
ps:如果单机部署集群,每个redis的pv的路径不能相同,否则会报错
3、升级
helm upgrade -f redis-ha-values-upgrade.yaml redis-ha stable/redis-ha
4、报错可以回滚
helm rollback redis-ha
五、删除
helm ls --all
helm del --purge redis-ha
helm安装redis+Sentinel集群搭建的更多相关文章
- Redis Sentinel 集群搭建常见注意事项
我的配置: 1个master,1个slave,3个sentinel 搭建的过程网上已经有很多了,这里列几个重点关注: 修改sentinel.conf的protected-mode与redis.conf ...
- redis sentinel集群的搭建
背景说明: 这里采用1主2从的redis集群,3个sentinel搭建高可用redis集群. 一,关于搭建redis-sentinel高可用之前,我们必须要了解redis主从搭建redis-senti ...
- Redis Sentinel 集群安装 step by step
一. 准备材料 服务器 IP address 操作系统 位数 Redis 版本 CNT06CAH05 192.168.3.47 CentOS 6.5 x64 Redis-3.2.6 sentine ...
- linux环境下redis安装(redis伪集群搭建)
redis在linux环境下搭建 1.创建目录 [root@192 local]# mkdir /usr/local/redis 2.下载redis,并解压 [root@192 local]# wge ...
- helm部署Redis哨兵集群
介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客户端通知. 如下图: Redis Sentinel 故障转移过程: 从这 ...
- Redis本地集群搭建(5版本以上)
Redis本地集群搭建(5版本以上) 2019年11月3日10:05:48 步骤 1.下载安装Redis的安装包 2.复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 ...
- redis的集群搭建(很详细很详细)
说在前面的话 之前有一节说了redis单机版的搭建和使用jedis管理redis单机版和集群版, 本节主要讲一下redis的集群搭建. 跳转到jedis管理redis的使用 认识redis集群 首先我 ...
- docker1.12 安装redis第三方集群方案 codis
docker1.12 安装redis第三方集群方案 codis
- redis sentinel 集群监控 配置
环境: ip 172.16.1.31 26379 redis sentinel ip 172.16.1.30 6379 主 1 ip 172.16.1.31 6380 从 1 ip ...
随机推荐
- Python笔记之数据类型
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...
- Excel控制AutoCad进行坐标标注
做过工程测绘,平面设计,使用过Autocad制图的朋友们,都经常要在CAD上标注点或者线的坐标,CAD自身的标注功能,并不能同时标注X和Y坐标,,要同时标注X和Y坐标,可以使用南方CASS软件,或者一 ...
- RTSP-RTMP-HLS媒体播放管理
近在跟一些做安防行业同学交流中发现,他们对于外网中播放各类视频流觉得各种设置麻烦的很, 好吧,小小的做了一个解决方案. 这个工具从视频监控管理平台剥离出来, 支持对rtsp, rtmp, hls流的管 ...
- 深入浅出Java探针技术1--基于java agent的字节码增强案例
Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...
- How to using Piwis Tester II code Porsche rear end electronics
V18.100 Piwis Tester II Diagnostic Tool For Porsche With CF30 Laptop High Quality Top 7 Reasons to G ...
- 刷Python核心编程第三版的习题时遇到一个findall的坑
在用正则表达式做以下查找时,发现re.findall()对于正则表达式有没有圆括号是有区分的,具体如下 line = 'Tue Sep 18 12:48:21 2029::ilziuv@zcntzir ...
- 火狐开发----从头用到尾的cfx
此教程阐述了如何使用 SDK 开发一个简单的扩展. 准备 要想使用 SDK 开发 Firefox 的扩展,您首先需要 安装并激活 SDK.一旦您完成了以上步骤,您将会看到一个命令行窗口. 初始化一个空 ...
- GCOV&LCOV&GCOVR入门
索引 一.概述 二.关于gcov的安装 三.代码覆盖率测试(以GCOV为例) 1.编译源代码 2.运行可执行程序 3.通过gcov指令生成代码覆盖率报告 四.生成更全面.直观的代码覆盖率报告 1.LC ...
- linux普通帐号可以临时切换到root(添加用户到sudoers中)
一般,进入terminal之后,默认是普通账户能操作的功能,能访问的目录有限,需要临时切换到root账户 那么此时就需要配置sudoers文件,可以让普通用户通过sudo命令临时切换到root账户 首 ...
- .equals()到底是什么意思?
.equals() 在Java中判断是否相等,与 == 的区别是 .equals() 只判断值是否相等,不管两者是否存在同一地址.而 == 则是判断值与存在地址都得相等 扩展资料: 由equals的源 ...
