Rancher搭建Redis主从集群

主从复制Redis集群

         

主从容器启动的时候指定不同的配置文件

        

         

         

#!/bin/bash

#change redis config
ordinal=`env | grep podname | cut -d"=" -f2 | cut -d"-" -f2`
sed -i "s/slaveof.*/slaveof rediscluster-0.rediscluster 6379/g" /etc/redis/redis-slave.conf
if [ $ordinal -eq 0 ]; then
   redis-server /etc/redis/redis-master.conf
else
   redis-server /etc/redis/redis-slave.conf
fi
View Code

        

       

          

            以上步骤实现了主从节点的数据同步,但是当主节点崩溃的时候还不能自动把一个从节点切换成主节点。要实现主从的自动切换就必须另外安装一个redis哨兵服务

            主节点宕机后从节点自动升级为主节点,但主节点的IP已经变动了,此时应用服务还是拿着原主节点的地址去访问
           一旦主节点宕机,从节点晋升成主节点,同时需要修改应用方的主节点地址,还需要命令所有从节点去复制新的主节点,整个过程需要人工干预

Redis哨兵集群安装配置

         在主从复制的基础上,哨兵实现了自动化的故障恢复

         访问redis集群的数据都是通过哨兵集群的,哨兵监控整个redis集群

         一旦发现redis集群出现了问题,比如刚刚说的主节点挂了,从节点会顶上来。但是主节点地址变了,这时候应用服务无感知,也不用更改访问地址,因为哨兵才是和应用服务做交互的

        redis容器最少需要6个,分别是1主2从3哨兵

        pod0为主  pod1和pod2为从 pod3,pod4,pod5为哨兵

        

       

      

#!/bin/bash

#change redis config
ordinal=`env | grep podname | cut -d"=" -f2 | cut -d"-" -f2`
sed -i "s/slaveof.*/slaveof rediscluster-0.rediscluster 6379/g" /etc/redis/redis-slave.conf
if [ $ordinal -eq 0 ];
then
   redis-server /etc/redis/redis-master.conf
elif [ $ordinal -gt 0  -a $ordinal -le 2 ];
then
   redis-server /etc/redis/redis-slave.conf
elif [ $ordinal -gt 2 ];
then
   redis-sentinel /etc/redis/sentinel.conf
fi
shell多条件的复杂判断

   

Rancher实现一个四层的负载均衡器

       实现给一群pod提供一个对外访问的入口

       

       

         

         

posted @ 2021-01-26 13:58  不懂123  阅读(1547)  评论(0编辑  收藏  举报