centos stream 9 keepalived 配置

centos stream 9 keepalived 配置


一、安装keeaplived

#直接使用yum 安装
yum install keepalived  

二、keepalived 配置(默认位置 /etc/keepalived/keepalived.conf )

global_defs {
   notification_email {    #发生故障时通知邮箱
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc  #发送邮件地址
   smtp_server 192.168.200.1  #邮件服务器地址
   smtp_connect_timeout 30   #邮件服务器链接超时时长
   router_id LVS_32    #每个keepalived 节点唯一标识(主备模式可以不一样)
   vrrp_skip_check_adv_addr  #keepalived会以对所有通告报文都进行检查,进而比较消耗性能,启用此配置后,如果收到的通告报文和上一个报文是同一个路由器则跳过检查,默认值为全检查;
   vrrp_strict   #严格遵守VRRP协议,开启iptables防火墙规则,建议关闭此项配置
   vrrp_garp_interval 0    #可设置ARP接口之间发送免费报文的延迟时间,可以精确到毫秒,默认是0
   vrrp_gna_interval 0     #设置非请求消息的发送延迟时间,默认为0
   vrrp_mcast_group4  224.0.0.18  #可指定组播IP范围,可选择224.0.0.0到239.255.255.255之间的地址,默认为224.0.0.18
   vrrp_iptables  与vrrp_strict同时设置时可禁止iptables规则的生成,注释或者无vrrp_strict时可不加此项
}
vrrp_instance VI_1 {   #vrrp_instance模块后面的STRING为VRRP的实例名,一般设置为业务名称
    state MASTER     #可设置此虚拟路由器的初始状态,可选择MASTER或者BACKUP
    interface ens33  #可以绑定当前虚拟路由器所使用的物理接口,如eth0、bond0和br0等,可以和VIP地址不在同一张网卡上
    virtual_router_id 51  #可设置每个虚拟路由器的唯一标识,取值范围为0-255,值必须是唯一的,并且同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一,主备模式下一样
    priority 100  #可设置当前物理节点在此虚拟路由器中的优先级,优先级取值范围为1-254,值越大优先级越高,每个keepalived节点取值不同
    advert_int 1  #可设置VRRP通告的时间间隔,默认为1秒
    authentication {   #可设置认证机制,由以下两部分构成
        auth_type PASS   #认证类型,可选择AH和PASS两种,AH为IPSC互联网安全协议认证,PASS为简单密码认证,推荐PASS认证
        auth_pass 1111   #预共享秘钥设置,仅前8位有效,同一虚拟路由器的多个keepalived节点auth_pass值必须保持一致
    }
    virtual_ipaddress {
        192.168.0.25   #虚拟路由器的VIP默认为ens33网卡
        10.0.0.99/24 dev eth1   #指定VIP的网卡
    }
    track_script 
    {
        chk_nginx    #调用检测脚本
    }
}
#virtual_server模块用于虚拟服务器配置,将虚拟路由器中添加的VIP与后端real server对应起来
virtual_server 192.168.200.100 443 {  #VIP地址和端口,即客户端是通过哪一个VIP和哪个端口向后端服务器发起访问
    delay_loop 6    #检查后端服务器的时间间隔
    lb_algo rr      #可定义调度算法,如rr、wrr、lc、wlc、lblc、sh和dh等
    lb_kind NAT     #可定义集群的类型,如NAT、DR和TUN,注意要使用大写
    persistence_timeout 50  #可设置持久连接时长
    protocol TCP   #可指定服务协议,如TCP、UDP和SCTP,一般使用TCP
    sorry_server   192.168.0.30 80#可设置当所有后端服务器都不可用时的备用服务器地址

    real_server 192.168.201.100 443 {   #设置VIP所对应的后端服务器IP和端口
        weight 1  #设置对应后端服务器的权重
        SSL_GET/HTTP_GET {  #SSL_GET、HTTP_GET、TCP_CHECK、SMTP_CHECK和MISC_CHECK等可以定义当前后端主机的健康状况检查方法
            url {
              path /
              digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
              path /mrtg/
              digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_timeout 3  #表示客户端连接超时时长
            retry 3      #重试次数
            delay_before_retry 3  #表示重试之前的延迟时长
        }
    }
}
# 热备需要添加的内容
vrrp_script chk_nginx
{
    script   "/etc/keepalived/nginx.sh"  #执行脚本的路径
    interval 1  #调用脚本两次之间的间隔,默认为1秒
    timeout 10  #第二次调用脚本后多长时间没有回应的超时时间
    weight 10  #条件成立增加权重
}

三.keeaplived 脑裂

keeplived 脑裂
由于某些原因,导致两台keepalived高可用服务器在指定时间内,无法检测到对方的心跳消息,各自取得资源及服务的所有权,而此时的两台高可用服务器又都还活着
导致脑裂原因:
1.服务器网线松动等网络故障
2.服务器硬件故障发生损坏现象而崩溃
3.主备都开启firewalld防火墙
4.Nginx服务器死掉

解决防火墙裂脑的脚本

[root@jxl ~]# vim check_keepalived.sh
lb01=192.168.81.210
vip=192.168.81.100
while true;do
vip_count=ip add | grep ${vip} | wc -l
ping -c 2 -W 3 $lb01 &>/dev/null
if [ $? -eq 0 -a $vip_count -eq 1 ];then
echo -e  "machine is brain."
else
echo -e "machine is ok"
fi
sleep 5s
done

解决nginx 服务器死掉

[root@localhost ~]# vim check_nginx.sh
#/bin/bash
#检查nginx
while true;do
        nginx_proc_count=`ps -C nginx --no-header | wc -l`
        if [ $nginx_proc_count -eq 0 ];then
                systemctl restart nginx
                if [ $? -eq 0 ];then
                        echo -e "nginx starting"
                fi
                sleep 5
                nginx_proc_count=`ps -C nginx --no-header | wc -l`
                if [ $nginx_proc_count -eq 0 ];then
                        systemctl stop keepalived
                        echo "start nginx failed, stop keepalived" >> $LOG_FILE
                        exit 1
                fi
        fi
        sleep 5
done

四.keepalived 使用场景

1.负载均衡:通过配置keepalived结合ipvs做到负载均衡(LVS+Keepalived);
2.高可用性:当主服务发生故障时,备服务器将自动接管主服务的工作以及IP地址,从而实现系统的高可用

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值