zoukankan      html  css  js  c++  java
  • 基于keepalived的lvs负载均衡http集群

    DR模式

    4台

    192.168.94.141,192.168.94.143:DR(keepalived主备)

    192.168.94.129, 192.168.94.130 :RS

    192.168.94.250:VIP

    2台DR安装ipvsadm,keepalived ,postfix,mail

    keepalive配置dr的vip为192.168.94.250,编辑脚本判断ipvsadm守护进程是否在运行,不在则判断进程挂了,关闭keep。

    [root@node1 ~]# cat /script/ipvscheck.sh 
    #!/bin/bash
    systemctl status ipvsadm.service |grep dead
    if [ $? -eq 0 ];then
        systemctl stop keepalived.service
    fi
    [root@node1 ~]# cat /script/notify.sh 
    #!/bin/bash
    VIP=$2
    sendmail (){
    	subject="${VIP}'s server keepalived state is translate"
    	content="`date +'%F %T'`: `hostname`'s state change to master"
    	echo $content | mail -s "$subject" 1252150147@qq.com
    }
    case "$1" in
      master)
    	  systemctl status ipvsadm.service |grep dead
    	  if [ $? -eq 0 ];then
    	systemctl start ipvsadm.service
    	fi
    	sendmail
      ;;
      backup)
    	  systemctl status ipvsadm.service |grep dead
    	  if [ $? -ne 0 ];then
    	systemctl stop ipvsadm.service
    	fi
      ;;
      *)
    	  echo "Usage:$0 master|backup VIP"
      ;;
    esac
    
    

    配置dr规则,ipvsadm保存到/etc/sysconfig/ipvsadm

    [root@node1 ~]# cat /etc/sysconfig/ipvsadm
    -A -t 192.168.94.250:80 -s wrr
    -a -t 192.168.94.250:80 -r 192.168.94.129:80 -g -w 1
    -a -t 192.168.94.250:80 -r 192.168.94.130:80 -g -w 1
    
    
    //keepalive会根据配置文件分配vip
    [root@node1 ~]# cat /etc/keepalived/keepalived.conf 
    ...
    vrrp_script ipvs_check {	
        script "/script/ipvscheck.sh"
        interval 5	
        weight -20
    }
    ...
     track_script {
            ipvs_check
        }
        notify_master "/script/notify.sh master 192.168.94.141"
        notify_backup "/script/notify.sh backup 192.168.94.143"
    

    RS端

    http,net-tool安装,给lo网卡添加vip 192.168.94.250/32

    //内核参数修改
    [root@RS1 ~]# vim /etc/sysctl.conf
    ...
    net.ipv4.conf.all.arp_ignore = 1 #只响应目的IP地址为接收网卡上的本地地址的arp请求
    net.ipv4.conf.all.arp_announce = 2 #只向该网卡回应与该网段匹配的ARP报文
    [root@RS1 ~]# sysctl -p
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    
    [root@RS2 ~]# vim /etc/sysctl.conf
    ...
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    [root@RS2 ~]# sysctl -p
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    
    //路由指向vip
    [root@RS1 ~]# route add -host 192.168.94.120/32 dev lo
    [root@RS2 ~]# route add -host 192.168.94.120/32 dev lo
    
  • 相关阅读:
    网页制作-表单元素2
    网页制作-表单元素
    网页制作_表格
    网页制作常用标签
    IT新起之秀
    Android Studio 快捷键
    android github
    手机抓包 http tcp udp?
    Ubuntu16.04 Caffe 安装步骤记录(超详尽)(转载)
    ubuntu16.04 在cuda9.0环境下编译安装opencv2.4.13.7
  • 原文地址:https://www.cnblogs.com/fangxinxin/p/14792194.html
Copyright © 2011-2022 走看看