Kubernetes-基于helm安装部署高可用的Redis及其形态探索
首先是一些关于redis的介绍和其在K8S上的安装过程:https://www.kubernetes.org.cn/3974.html
1.1部署形态
通过上述地址的教程,可以完成redis 的安装和使用。本文主要是要阐述一些社区版的redis-ha的形态探索。

这是我按照上述教程安装的例子,可以看到,默认是安装1主+2从,这是3节点的配置。同时,每个redis-server和一个redis-sentinel安装在一个节点,也就有了三个redis-sentinel。

1.2主从切换
首先,我们通过kubectl get svc -n default的方式来获取redis的网络情况。(n为namespace,请根据自己情况进行更改)
然后,我们通过redis-cli的方式来访问redis的master实例,并获取Replication的状态。

从上图中,我们可以看出,redis master有两个slave,同时,可以看到他们的ip和pod ip是对应的。(注意,这里我们是在宿主机上,通过master的clusterIP访问的,而非redis pod的)
我们进入到redis的master server的pod中,kill掉redis server进程,因为pod存活条件应该是以redis来判断的(有的是ping 6379这个端口,这里暂时还不知道是怎么判断的。),这个时候因为我们kill掉了redis进程,所以k8s认为这个pod需要重启,所以退出了bash。

注意,这里显示的以slave的方式启动,应该是因为我之前曾经做过类似的操作,这个节点之前是个从节点,是在一个master节点被kill掉之后才提升成为的主节点。sentinel info可以证实这一点。

稍等片刻后,我们可以看到已经完成了主从切换,同时我们依然可以通过之前的redis master的clusterIP来访问redis的master实例。(请观察此图与上面那个图片的role变化,和sentinel中的address变化)

可见,当master的pod因为某种原因down掉了之后,k8s会通过sentinel选择一个新的master节点,并更新master的clusterIP指向新的master的podip,以便对上层应用做成无感切换。下图依然通过master的clusterIP来访问redis的master实例。

今天先到这里,本次主要是讲述了k8s通过helm安装的redis-ha进行主从切换对于业务和K8S的影响,之后会探索redis-ha的master,slave和sentinel的配置。
更多openstack/trove的文章:http://www.cnblogs.com/S-tec-songjian/
此文章属博客园用户S-tec原创作品,受国家《著作权法》保护,未经许可,任何单位及个人不得做营利性使用;若仅做个人学习、交流等非营利性使用,应当指明作者姓名、作品名称,原文地址,并且不得侵犯作者依法享有的其他权利。
Kubernetes-基于helm安装部署高可用的Redis及其形态探索的更多相关文章
- Kubernetes-基于helm安装部署高可用的Redis及其形态探索(二)
上一章,我们通过实践和其他文章的帮助,在k8s的环境安装了redis-ha,并且对其进行了一些实验来验证他的主从切换是否有效.本篇中将会分析,究竟是如何实现了redis-ha的主从切换,以及其与K8S ...
- 基于Containerd安装部署高可用Kubernetes集群
转载自:https://blog.weiyigeek.top/2021/7-30-623.html 简述 Kubernetes(后续简称k8s)是 Google(2014年6月) 开源的一个容器编排引 ...
- 基于saltstack自动化部署高可用kubernetes集群
SaltStack自动化部署HA-Kubernetes 本项目在GitHub上,会不定期更新,大家也可以提交ISSUE,地址为:https://github.com/skymyyang/salt-k8 ...
- 企业运维实践-还不会部署高可用的kubernetes集群?使用kubeadm方式安装高可用k8s集群v1.23.7
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 文章目录: 0x00 前言简述 ...
- k8s部署高可用Ingress
部署高可用Ingress 官网地址https://kubernetes.github.io/ingress-nginx/deploy/ 获取ingress的编排文件 wget https://raw. ...
- kubernetes kubeadm部署高可用集群
k8s kubeadm部署高可用集群 kubeadm是官方推出的部署工具,旨在降低kubernetes使用门槛与提高集群部署的便捷性. 同时越来越多的官方文档,围绕kubernetes容器化部署为环境 ...
- kubernetes部署高可用Harbor
前言 本文Harbor高可用依照Harbor官网部署,主要思路如下,大家可以根据具体情况选择搭建. 部署Postgresql高可用集群.(本文选用Stolon进行管理,请查看文章<kuberne ...
- 附012.Kubeadm部署高可用Kubernetes
一 kubeadm介绍 1.1 概述 参考<附003.Kubeadm部署Kubernetes>. 1.2 kubeadm功能 参考<附003.Kubeadm部署Kubernetes& ...
- kubernetes 1.9 安装部署
参考地址:https://github.com/gjmzj/kubeasz 引言 提供快速部署高可用k8s集群的工具,基于二进制方式部署和利用ansible-playbook实现自动化,既提供一键安装 ...
随机推荐
- 树莓派frp添加为服务管理
1.下载frp https://github.com/fatedier/frp/releases 我是1代的B+,下载arm版的,新的可以用arm64的 frp_0.29.0_linux_arm.ta ...
- Ecshop系统二次开发教程及流程演示
来源:互联网 作者:佚名 时间:03-01 16:05:31 [大 中 小] Ecshop想必大家不会觉得陌生吧,大部分的B2C独立网店系统都用的是Ecshop系统,很受用户的喜爱,但是由于Ecs ...
- CF 1198 A. MP3 模拟+滑动窗口
A. MP3 题意:给你n个数,一个大小为8*I的容量,保存一个数需要多少容量取决于给定n个数的种类k,用公式 log2 k 计算,如果给定的容量不能保存所有数,选择减少数的种类来降低保存一个 ...
- 在Ubuntu下如何压缩一个文件夹
.gz 解压1:gunzip FileName.gz解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 解压:tar zxvf FileName.tar. ...
- Linux:Shell-Bash基本功能
1.历史命令 history [选项] [历史命令保存文件] 选项:-c 清空历史命令 -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history 历史命令默认保存1000条,可以 ...
- Spring中的BeanPostProcessor和BeanFactoryPostProcessor
BeanPostProcessor BeanFactoryPostProcessor 标准ioc容器初始化之后的后置处理器 BeanDefintionRegisterPostProcessor 在所有 ...
- git使用问题二删除远程仓库文件,本地保留不动
git rm --cached filename/-r directory git commit "xxxx" git push
- phpMydmin的GetShell思路
phpMyadmin简介 phpMyadmin是一个以PHP为基础的MySQL数据库管理工具,使网站管理员可通过Web接口管理数据库 . 信息收集 此部分主要需要收集的是网站物理路径,否则后续无法通过 ...
- php 获取时间段
switch ($type){ case 'day'://当日 $end=date(,,,date(,date('Y'))); $where=' and '.$pre.'create_time> ...
- mysql日常小总结(其实就今天)
联表查询: SELECT t1.user_Name FROM t_user AS t1 , t_comment AS t2 WHERE t2.user_id=t1.id 结果如图: 加上GRO ...