首先是一些关于redis的介绍和其在K8S上的安装过程:https://www.kubernetes.org.cn/3974.htmlhtml
经过上述地址的教程,能够完成redis 的安装和使用。本文主要是要阐述一些社区版的redis-ha的形态探索。redis
这是我按照上述教程安装的例子,能够看到,默认是安装1主+2从,这是3节点的配置。同时,每一个redis-server和一个redis-sentinel安装在一个节点,也就有了三个redis-sentinel。bash
首先,咱们经过kubectl get svc -n default的方式来获取redis的网络状况。(n为namespace,请根据本身状况进行更改)网络
而后,咱们经过redis-cli的方式来访问redis的master实例,并获取Replication的状态。学习
从上图中,咱们能够看出,redis master有两个slave,同时,能够看到他们的ip和pod ip是对应的。(注意,这里咱们是在宿主机上,经过master的clusterIP访问的,而非redis pod的)spa
咱们进入到redis的master server的pod中,kill掉redis server进程,由于pod存活条件应该是以redis来判断的(有的是ping 6379这个端口,这里暂时还不知道是怎么判断的。),这个时候由于咱们kill掉了redis进程,因此k8s认为这个pod须要重启,因此退出了bash。server
注意,这里显示的以slave的方式启动,应该是由于我以前曾经作过相似的操做,这个节点以前是个从节点,是在一个master节点被kill掉以后才提高成为的主节点。sentinel info能够证明这一点。htm
稍等片刻后,咱们能够看到已经完成了主从切换,同时咱们依然能够经过以前的redis master的clusterIP来访问redis的master实例。(请观察此图与上面那个图片的role变化,和sentinel中的address变化)blog
可见,当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原创做品,受国家《著做权法》保护,未经许可,任何单位及我的不得作营利性使用;若仅作我的学习、交流等非营利性使用,应当指明做者姓名、做品名称,原文地址,而且不得侵犯做者依法享有的其余权利。