返回总目录页

lvs+keepalived详解

  

 常用软件安装及使用目录

 

keepalvied实现nginx的高可用

详情看这里 : 

配置方法:

主节点配置:

! Configuration File for keepalived
 
global_defs { 

   script_user root
   enable_script_security
   notification_email { 
     acassen@firewall.loc 
     failover@firewall.loc 
     sysadmin@firewall.loc 
   } 

   notification_email_from Alexandre.Cassen@firewall.loc  
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30 
   router_id NGINX_MASTER 
} 
vrrp_script check_nginx {
   script "/etc/nginx/check_nginx.sh"
   interval 2
   weight 2
}

vrrp_instance VI_1 { 
    state MASTER 
    interface eth0
    virtual_router_id 51 
    priority 100
    advert_int 1
    authentication { 
        auth_type PASS      
        auth_pass 1111 
    }  
    virtual_ipaddress { 
        10.0.0.30/24 
    } 
    track_script {
       check_nginx
   } 
}

备节点配置:

! Configuration File for keepalived 
 
global_defs { 
   # 接收邮件地址 
   notification_email { 
     acassen@firewall.loc 
     failover@firewall.loc 
     sysadmin@firewall.loc 
   } 
   # 邮件发送地址 
   notification_email_from Alexandre.Cassen@firewall.loc  
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30 
   router_id NGINX_MASTER 
} 

vrrp_script check_nginx {
    script "/etc/nginx/check_nginx.sh"
}

vrrp_instance VI_1 { 
    state BACKUP 
    interface eth0
    virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 
    priority 90    # 优先级,备服务器设置 90 
    advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒 
    authentication { 
        auth_type PASS      
        auth_pass 1111 
    }  
    virtual_ipaddress { 
        10.0.0.30/24 
    } 
    track_script {
        check_nginx
    } 
}

检查脚本:/etc/nginx/check_nginx.sh     

注意:1、自己根据情况去调整这个数量,我这个目前是适用的,不确定有些情况可能是不适用,需要调整数量

           2、不是用配置文件里的脚本检查执行。而是自己用下面的程序后台执行,2秒一次检查  ,因为我用配置文件的方式发现没有成功,等哪次成功了再补充方法,下面这个脚本方式可行的 。详情看上面我写的链接

          3、sh /etc/nginx/check_nginx.sh &

while true
do
count=$(ps -ef |grep nginx |egrep -cv "grep|$$")
if [ "${count}" -le 1 ];then
  systemctl stop keepalived.service
fi
 sleep 2
done

调整数量参考脚本:

while true
do
count=$(ps -ef |grep nginx |egrep -cv "grep|$$")
if [ "${count}" -le 1 ];then
  echo 0
  #systemctl stop keepalived.service
  else
  echo 1
fi
 sleep 2
done

 

 

 

 

 

其它

资源链接:https://pan.baidu.com/s/15rFjO-EnTOyiTM7YRkbxuA    网盘分享的文件在此

官网:http://www.linuxvirtualserver.org/index.html   

中文资料

LVS项目介绍           http://www.linuxvirtualserver.org/zh/lvs1.html  

LVS集群的体系结构     http://www.linuxvirtualserver.org/zh/lvs2.html  

LVS集群中的IP负载均衡技术  http://www.linuxvirtualserver.org/zh/lvs3.html 

LVS集群的负载调度      http://www.linuxvirtualserver.org/zh/lvs4.html  

 

安装ipvsadm管理工具(只在lb03操作)

# 查看系统的LVS模块。

lsmod|grep ip_vs

# 默认没有加载模块,需要安装管理工具才会激活。

yum -y install ipvsadm

# 查看当前LVS状态,顺便激活LVS内核模块。

ipvsadm

 

[root@lb01 ~]# lsmod|grep ip_vs

ip_vs                 141092  0

nf_conntrack          111302  1 ip_vs

libcrc32c              12644  2 xfs,ip_vs

 

配置LVS负载均衡服务(只在lb03操作)

步骤1:在eth0网卡绑定VIP地址(ip

步骤2:清除当前所有LVS规则(-C

步骤3:设置tcptcpfinudp链接超时时间(--set

步骤4:添加虚拟服务(-A),-t指定虚拟服务的IP端口,-s 指定调度算法 调度算法见man ipvsadmrr wrr 权重轮询 -p 指定超时时间

步骤5:将虚拟服务关联到真实服务上(-a-r指定真实服务的IP端口 -g LVS的模式 DR模式 -w 指定权重

步骤6:查看配置结果(-ln

ip addr add 10.0.0.13/24 dev eth0

ipvsadm -C                    

ipvsadm --set 30 5 60         

ipvsadm -A -t 10.0.0.13:80 -s wrr -p 20   

ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.17:80 -g -w 1

ipvsadm -a -t 10.0.0.13:80 -r 10.0.0.18:80 -g -w 1

ipvsadm -ln

 

web服务器配置(在web03/web04同时操作下面步骤)

步骤1:在lo网卡绑定VIP地址(ip

步骤2:修改内核参数抑制ARP响应

ip addr add 10.0.0.13/32 dev lo

 

cat >>/etc/sysctl.conf<<EOF

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

EOF

sysctl -p

 

ip addr del 10.0.0.13/24 dev eth0

 

ip addr add 10.0.0.13/24 dev eth0

ip addr show eth0

arping -I eth0 -c 1 -U 10.0.0.13

windows查看arp -a

LVS+Keepalived方案实现步骤

 

步骤1:在lb03lb04安装Keepalive

yum -y install keepalived

 

步骤2:配置Keepalivelb03lb04的配置文件分成三部分配置

1.global_defs   è全局定义 

2.vrrp 实例配置 è VIP

3.virtual_server配置  èlvs的配置

 

keepalived功能:

1. 添加VIP

2. 添加LVS配置

3. 高可用(VIP漂移)

4. web服务器健康检查  (添加和剔除)

cp /etc/keepalived/keepalived.conf{,.ori}
\cp keepalived-lb01.conf /etc/keepalived/keepalived.conf
systemctl start keepalived.service 
ip a
ipvsadm -ln
systemctl stop keepalived.service 

(在web03/web04同时操作下面步骤)

步骤1:在lo网卡绑定VIP地址(ip

步骤2:修改内核参数抑制ARP响应

 

ip addr add 10.0.0.13/32 dev lo

 

 

cat >>/etc/sysctl.conf<<EOF
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
EOF

 

sysctl -p

1. LVS原理

2. LVS+Keepalived

 

posted @ 2019-02-23 17:31  马昌伟  阅读(562)  评论(0编辑  收藏  举报
博主链接地址:https://www.cnblogs.com/machangwei-8/