keepalived高可用lvs集群

    script "/root/httpd.sh"                       #指定要执行脚本的路径
    interval 2                               ##脚本执行间隔,每2s检测一次
}
vrrp_instance VI_1 {                           #角色类型
    state BACKUP
    interface ens33                            #网卡名称 
    virtual_router_id 66                        #虚拟路由id(需要与BACKUP一致)       
    priority 100                              #优先级越大优先
    advert_int 1
nopreempt                                #非抢占模式
authentication { auth_type PASS                         auth_pass 1111                         #认证类型 主备之间必须一样  } virtual_ipaddress { 192.168.126.6/24                        #虚拟ip(vip)     } track_script { check_httpd                             #check是为执行脚本计划起的名字 
 } 
}

lvs设置

virtual_server 192.168.126.6 80 {
    delay_loop 3                                 #健康检查时间间隔
    lb_algo rr                                  #负载均衡调度算法  
    lb_kind DR                                   #负载均衡转发规则  
    protocol TCP                                 #负载均衡转发规则 
    
    real_server 192.168.126.99 80 {                      #要监控的real_server的ip和端口号
        weight 1                                  #权重
        TCP_CHECK {                                 #基于tcp协议的检查
            connect_timeout 3                            #连接时间超时
            retry 3                                  #nb_get_retry 3      #重连次数  
            delay_before_retry 3                          #重连间隔时间
        }   
        
    }   
    
    real_server 192.168.126.66 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3 
            delay_before_retry 3
        }   
        
    }
    

}
[root@zxw99 html]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.126.126.6:80 rr
  -> 192.168.126.66:80            Route   1      1          1         
  -> 192.168.126.99:80            Route   1      0          2         


[root@zxw8 sh]# cat httpd.yaml
- hosts: zxw
remote_user: root
tasks:
- name: yum install net-tools -y
yum: name=net-tools state=latest
- name: ifconfig
command: ifconfig lo:0 192.168.126.6 broadcast 192.168.126.6 netmask 255.255.255.255 up
ignore_errors: yes
- name: route add -host 192.168.126.6 dev lo:0
command: route add -host 192.168.126.6 dev lo:0
ignore_errors: yes
- name: echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
shell: echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
- name: echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
shell: echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
- name: echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
shell: echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
- name: echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
shell: echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[zxw]
192.168.126.6 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123
#192.168.126.7 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123
192.168.126.4 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123

#!/bin/bash
case $1 in
start)
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ifconfig lo:0 192.168.145.200/32 broadcast 192.168.145.200 up
        if [ $? -eq 0 ];then
                route add -host 192.168.145.200 dev lo:0
        fi
        echo "启动成功"
;;
stop)
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
        ifconfig lo:0 down
        route del -host 192.168.145.200
        echo "删除成功"
;;
*)
        echo "usage start|stop"
;;
esac
服务状态
#!/bin/bash systemctl status nginx &> /dev/null if [ $? -ne 0 ];then systemctl stop keepalived echo "跳转到备用" else echo "启动nginx" fi

 

 



 

 

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 66
    priority 90
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.126.110/24
    }
}
virtual_server 192.168.126.110 80 {
    delay_loop 3
    lb_algo rr 
    lb_kind DR 
    protocol TCP
    
    real_server 192.168.126.99 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3 
            delay_before_retry 3
        }   
        
    }   
    
    real_server 192.168.126.66 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3 
            delay_before_retry 3
        }   
        
    }
    
}
原文地址:https://www.cnblogs.com/itzhao/p/11274109.html