zoukankan      html  css  js  c++  java
  • 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
            }   
            
        }
        
    }
  • 相关阅读:
    二叉排序树 常用函数小结
    二叉树的应用:二叉排序树的删除
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 68
    剑指 Offer 28. 对称的二叉树 做题小结
    正则表达式不要背
    剑指 Offer 55
    LeetCode226. 翻转二叉树 做题小结
    Tools | 编程IED/编译器
  • 原文地址:https://www.cnblogs.com/itzhao/p/11274109.html
Copyright © 2011-2022 走看看