这篇文章主要讲解了“k8s如何部署redis集群”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“k8s如何部署redis集群”吧!注意上面的master节点,会生成对应节点id:bcae187137a9b30d7dab8fe0d8ed4a46c6e39638
、a2cec159bbe2efa11a8f60287b90927bcb214729
、4367e4a45e557406a3112e7b79f82a44d4ce485e
,用于创建slave节点。显示以下信息,即为添加成功:[OK] All nodes agree about slots configuration.[OK] All 16384 slots covered.[OK] New node added correctly.坑:一开始是想用headless的域名创建redis集群的,这样节点重启后就不需要更新ip,但是redis不支持使用域名,所以只能绕了一圈又回到固定ip的方法,和容器环境很不协调。cluster info注意:现在进入集群中的任意一个Pod中都可以访问Redis服务,前面我们创建了一个headless类型的Service,kubernetes集群会为该服务分配一个DNS记录,格式为:$(pod.name)
.$(headless server.name)
.${namespace}
.svc.cluster.local
,每次访问该服务名时,将会直接进入到redis的节点上。svc.cluster.local
可省略。 例如:redis-cli -c -a jxbd -h redis-0.redis-hs.jxbp -p 6379cluster nodes可以看到3个master,3个slave节点,都是connected
状态。get,set验证master节免费云主机域名点进行set操作,slave节点复制。主从复制可以看到重启后的,redis-1节点,虽然ip变了,但是redis集群,还是可以识别到新的ip,集群还是正常的。10.168.235.225 —> 10.168.235.232前面我们创建了用于实现StatefulSet的Headless Service,但该Service没有Cluster Ip,因此不能用于外界访问。所以,我们还需要创建一个Service,专用于为Redis集群提供访问和负载均衡。这里可以使用ClusterIP
,NodePort
。这里,我使用的是NodePort
。vi redis-ss.yaml创建名称为:redis-ss
的服务。在K8S集群中暴露6379端口,并且会对labels name
为k8s.kuboard.cn/name: redis
的pod进行负载均衡。然后在K8S集群中,就可以通过redis-ss:6379
,对redis集群进行访问。至此,大家可能会疑惑,那为什么没有使用稳定的标志,Redis Pod也能正常进行故障转移呢?这涉及了Redis本身的机制。因为,Redis集群中每个节点都有自己的NodeId(保存在自动生成的nodes.conf中),并且该NodeId不会随着IP的变化和变化,这其实也是一种固定的网络标志。也就是说,就算某个Redis Pod重启了,该Pod依然会加载保存的NodeId来维持自己的身份。我们可以在NFS上查看redis-0的nodes.conf文件:如上,第一列为NodeId,稳定不变;第二列为IP和端口信息,可能会改变。这里,我们介绍NodeId的两种使用场景:当某个Slave Pod断线重连后IP改变,但是Master发现其NodeId依旧, 就认为该Slave还是之前的Slave。当某个Master Pod下线后,集群在其Slave中选举重新的Master。待旧Master上线后,集群发现其NodeId依旧,会让旧Master变成新Master的slave。感谢各位的阅读,以上就是“k8s如何部署redis集群”的内容了,经过本文的学习后,相信大家对k8s如何部署redis集群这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
这篇文章主要讲解了“javascript如何设置input不可编辑”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript如何设置input不可编辑”吧! 方法:1、利用disabled属性设置,语法…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。