linux下keepalived的搭建

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43687990/article/details/102468129

keepalived是集群管理中保证集群高可用的服务软件,高可用 High Available
1.需要心跳机制探测后端RS是否提供服务。
a) 探测down,需要从lvs中删除该RS
b) 探测发送从down到up,需要从lvs中再次添加RS。
2.Lvs DR,需要主备
keepalived原理:
VRRP协议(虚拟路由冗余协议) - Virtual Router Redundancy Protocol
IP漂移
搭配keepalived前提:需要几台RS(真实后端服务器),一台主的lvs负载均衡服务器,一台备用lvs服务器,使用虚拟机替代,即准备几台虚拟机node1,node2,node3,node4
node1为主的lvs
node2和node3为RS,
node4为备用的lvs
RS的搭配在另一篇文章中已经说过了,这里就不再说明,下面主要是讲一下主备lvs下配置keepalived

首先
在node1和node4下下载keepalived,ipvsadm可以安装也可以不安装

yum install keepalived

编辑/etc/keepalived目录下的keepalived.conf文件,首先需要拷贝一份。

cp keepalived.conf keepalived.conf.bak

进入编辑页面,并进行编辑

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected] #发送提醒邮件的目标地址,可以有多个
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]   #发送邮件的from地址,可以随意写,邮件地址无所谓
   smtp_server 127.0.0.1  #邮件服务地址,一般写本地
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

#虚拟路由冗余协议vrrp的配置
vrrp_instance VI_1 {
    state MASTER  #MASTER主,BACKUP为从,即声明为MASTER时为主的服务器,声明为BACKUP时为备用服务器
    interface eth0
    virtual_router_id 51
    priority 100  #优先级,主的优先级高
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.163.100/24 dev eth0 label etho:2  #设置VIP(虚拟服务器地址
)
    }
}

virtual_server 192.168.163.100 80 {  #设置虚拟lvs服务  ,VIP  PORT
    delay_loop 6
    lb_algo rr #调度算法
    lb_kind DR  #lvs的模式
    nat_mask 255.255.255.0
    persistence_timeout 0  # 同一个IP地址在多长时间内lvs转发给同一个后端服务器
    protocol TCP

    real_server 192.168.163.22 80 {  #设置真实服务器的心跳机制 ,可以配置多个真实服务器的心跳机制
        weight 1   #权重
        SSL_GET {
            url {
              path /    #心跳检测地址
              status_code 200 #心跳检测返回的状态
            }
            
            connect_timeout 3   #超时时间
            nb_get_retry 3   #重复检查3次
            delay_before_retry 3   #每个多少秒再次检查
        }
    }
	   real_server 192.168.163.23 80 {  #设置真实服务器的心跳机制 ,可以配置多个真实服务器的心跳机制
        weight 1   #权重
        SSL_GET {
            url {
              path /    #心跳检测地址
              status_code 200 #心跳检测返回的状态
            }
            
            connect_timeout 3   #超时时间
            nb_get_retry 3   #重复检查3次
            delay_before_retry 3   #每个多少秒再次检查
        }
    }
}

#下面的内容可以删除
virtual_server 10.10.10.2 1358 {
    delay_loop 6
    lb_algo rr 
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    sorry_server 192.168.200.200 1358

    real_server 192.168.200.2 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.3 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334c
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334c
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

virtual_server 10.10.10.3 1358 {
    delay_loop 3
    lb_algo rr 
    lb_kind NAT
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.200.4 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.5 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

备用的lvs服务器中进行同上述一样的配置,但是keepalived.conf文件中需要将 state MASTER改为BACKUP,且将优先级低于主lvs服务器的优先级

猜你喜欢

转载自blog.csdn.net/qq_43687990/article/details/102468129