keepalived

作者: Miracle001 | 来源:发表于2018-05-01 15:56 被阅读11次

    图1


    image.png

    图2


    image.png
    图3
    image.png

    图4


    image.png
    SPoF:Single Point of Failure  单点故障
    可用性指标  A=MTBF/(MTBF+MTTR)
      可用性=平均无故障时长/(平均无故障时长+平均修复时长)
      无故障时长:两次故障之间的时长
    备用节点取代活动节点(需2点)
      备用节点服务本身运行正常,二者的调度没有区别
      活动节点上提供服务的IP地址随时可以切换至备用节点
    MTTR时间:备用节点探测到活动节点故障所需时长+IP地址转移所需要时长
      failover--失效转移/故障转移
      "备用节点+活动节点"的集合: 高可用集群
    活动节点繁忙,没有发送"心跳信息"给备用节点,误判下线,IP给了备用节点,导致二者互抢IP
      谁是真正的"组织"?  如上图1
    正常的集群逻辑是大于或等于3个节点
    多个节点--避免资源浪费--既做高可用,又做负载均衡
      前端dns配置两个A记录(不同的IP)
      node1和node2相同服务,同时工作,二者IP不同--负载均衡
      当node1-down机,把node1的IP给node2--高可用
      Cluster IP(集群IP):多节点使用相同的IP,将请求轮流分发给不同的节点(节点工作时,相当于使用单独的IP)--了解
      多种服务--对服务做高可用--了解--如上图2
    
    OSPF协议:生成路由规则
      路由1故障时,用户需要手动更改网关连接路由2
    配置虚拟路由器:把两个路由设备的内部网卡绑定起来  如上图3和图4
    
    keepalived
      转移IP,进程等其他资源没有转移
      增强ipvs功能:后端主机健康状态检测/实现多台主机调度--调动内核API自动生成规则
      高可用lvs(无后端主机健康状态检测),keepalived增添了此功能
    
    

    图1


    image.png

    图2


    image.png
    centos7.4  192.168.1.7
    centos7.4-2  192.168.1.8
    
    HA Cluster的配置前提
    1 时间同步:
    建议centos7使用chrony来同步时间
    vim /etc/chrony.conf  如上图1
      理解意思即可--此处不用更改(已经使用ntpdate的计划任务了)
    systemctl restart chronyd.service
    chronyc sources  查看时间源
    2 确保iptables及selinux不会成为阻碍:
    systemctl status firewalld.service
    systemctl status iptables.service
    yum info iptables-services  安装此包,就可像centos6一样使用iptables
    getenforce
    3 各节点之间可通过主机名互相通信:
    centos7.4和centos7.4-2
    vim /etc/hosts
    192.168.1.8 centos7.4-2.fgq.com  
    192.168.1.7 centos7.4.fgq.com  
    4 确保各节点的用于集群服务的接口支持MULTICAST通信:
    ifconfig  显示多播地址通信--MULTICAST
    
    keepalived安装配置
    centos7.4和centos7.4-2
    yum -y install keepalived
    rpm -ql keepalived
    man keepalived.conf
      TOP HIERACHY  顶级配置段
      VRRP synchronization group(s)  vrrp同步组  如上图2
      演示:单主模型  双主模型  高可用ipvs  高可用haproxy
    cp /etc/keepalived/keepalived.conf{,.bak}
    vim /etc/keepalived/keepalived.conf  如下图1
    注意centos7.4和centos7.4-2配置时的3处区别
    更改global_defs(下面括号内的四项全部删除,否则后面实验受影响)
    global_defs {
       notification_email {
         keepalived@fgq.com
       }
       notification_email_from ka_admin@fgq.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id centos7.4.fgq.com/centos7.4-2.fgq.com  centos7.4和centos7.4-2区别处1
       vrrp_mcast_group4 224.110.110.18
       (vrrp_skip_check_adv_addr)  下面四项全部删除,否则后面实验受影响
       (vrrp_strict)
       (vrrp_garp_interval 0)
       (vrrp_gna_interval 0)
    }
    光标移动至"virtual_server"(集群服务的配置,此处先不用)上一行
    :.,$s@^@#@  从当前行到最后一行,把行首替换为#
    :set nohlsearch  去除高亮
    更改vrrp_instance
    vrrp_instance VI_1 {
        state MASTER/BACKUP  centos7.4和centos7.4-2的区别处2
        interface ens34
        virtual_router_id 17
        priority 100/95  centos7.4和centos7.4-2的区别处3
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass JqZxY8Dc  (openssl rand -base64 8; 取前8位)
        }
        virtual_ipaddress {
            192.168.1.99  注意图中192.168.0.99是错的,要符合自己所在IP段-192.168.1.x
        }
    }
    配置centos7.4完成后,直接复制文件到centos7.4-2,进行编辑即可
    scp /etc/keepalived/keepalived.conf centos7.4-2.fgq.com:/etc/keepalived/
    systemctl start keepalived.service 
    systemctl status keepalived.service  显示主/备状态信息
    ip a  主--可以看到IP地址:192.168.0.99
    ss -ntlu  没有显示多播地址监听,但可通过多播地址向外发送信息
    tcpdump -i ens34 host 224.110.110.18  显示出来广播信息
    tcpdump -nn -i ens34 host 224.110.110.18  忽略主机名解析
    停止服务or阻断广播,转移VIP
    centos7.4
    systemctl stop keepalived.service ; ip a  服务停止,VIP转移
    centos7.4-2
    systemctl status keepalived.service ; ip a  显示为"主",VIP地址出现
    centos7.4
    systemctl start keepalived.service 
    systemctl status keepalived.service; ip a  显示为"主",VIP地址出现(抢占模式)
    centos7.4-2
    systemctl status keepalived.service ; ip a  显示为"备用",VIP地址消失
    
    多主模型
    每个物理路由都工作起来,配置多个虚拟路由,每个物理路由都有一个专用的VIP
    centos7.4
    vim /etc/keepalived/keepalived.conf  如下图2
    添加一个vrrp_instance
    vrrp_instance VI_2 {
        state BACKUP
        interface ens34
        virtual_router_id 27
        priority 95
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass JqZoY6ec
        }
        virtual_ipaddress {
            192.168.1.89  注意图中192.168.0.98是错的,要符合自己所在IP段-192.168.1.x
        }
    }
    systemctl stop keepalived.service
    centos7.4-2
    vim /etc/keepalived/keepalived.conf  如下图3
    添加一个vrrp_instance
    vrrp_instance VI_2 {
        state MASTER
        interface ens34
        virtual_router_id 27
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass JqZoY6ec
        }
        virtual_ipaddress {
            192.168.1.89(VIP2)  图中192.168.0.99是错的,要符合自己所在IP段192.168.1.x
        }
    }
    systemctl stop keepalived.service
    systemctl start keepalived.service 
    systemctl status keepalived.service; ip a  两个VIP地址都在此处
    centos7.4
    systemctl start keepalived.service 
    systemctl status keepalived.service; ip a  VIP1地址出现
    centos7.4-2
    ip a  仅仅出现VIP2
    systemctl stop keepalived.service
    ip a  VIP2消失
    centos7.4
    ip a  两个VIP地址都在此处
    tcpdump -nn -i ens34 host 224.110.110.18  一直开着,看centos7.4-2启动后的变化
    centos7.4-2
    systemctl start keepalived.service 
    ip a  VIP2地址出现
    
    前端dns配置两个A记录(解析分别对应89和99的IP即可),两个节点就可以工作起来了
    请求到达dns,轮询,一部分请求到达节点1,另一部分到达节点2
    实现了高可用+负载均衡
    
    
    

    图1


    image.png

    图2


    image.png
    图3
    image.png
    centos7.4和centos7.4-2
    状态转移时,所调用的通知脚本
    vim /etc/keepalived/notify.sh
    :1,$s@^[[:blank:]]@@  多执行几次来删除开头的空格
    #!/bin/bash
    #
    contact='root@localhost'
    
    notify() {
            local mailsubject="$(hostname) to be $1, vip floating"
            local mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
            echo "$mailbody" | mail -s "$mailsubject" $contact
    }
    
    case $1 in
    master)
            notify master
            ;;
    backup)
            notify backup
            ;;
    fault)
            notify fault
            ;;
    *)
            echo "Usage: $(basename $0) {master|backup|fault}"
            exit 1
            ;;
    esac
    chmod +x /etc/keepalived/notify.sh
    bash -n /etc/keepalived/notify.sh  语法检查
    scp /etc/keepalived/notify.sh centos7.4-2.fgq.com:/etc/keepalived/
    bash -x /etc/keepalived/notify.sh master  执行
    tail /var/log/maillog  看邮件日志
    mail  输入1查看邮件1  ok
    cp /etc/keepalived/keepalived.conf{,.dual_master}  备份之前配置的双节点模型
    systemctl stop keepalived.service
    vim /etc/keepalived/keepalived.conf
      使用单主模型,要删除vrrp_instance VI_2的内容
      在vrrp_instance VI_1内部添加notify的信息  如下图1
        notify_master "/etc/keepalived/notify.sh master"
        notify_backup "/etc/keepalived/notify.sh backup"
        notify_fault "/etc/keepalived/notify.sh fault"
    systemctl start keepalived.service 
    systemctl status keepalived.service; ip a  centos7.4会显示VIP地址
    mail  查看邮件,centos7.4会显示master
    
    ------------------------------------------------------------------------------------------
    
    服务--由进程提供;进程的单主/多主模型;虚拟服务器的实现
    负载均衡集群中调度器的高可用
    keepalived高可用ipvs集群
    
    lvs-dr模型
    centos7.4  director  192.168.1.7
    centos7.4-2  director  192.168.1.8
    centos7.4-3  real server  192.168.1.6  web服务(httpd/nginx)
    centos7.4-4  real server  192.168.1.12  web服务(httpd/nginx)
    systemctl restart chronyd.service  先同步时间or命令ntpdate
    vim /etc/hosts  主机名解析
    192.168.1.7 centos7.4.fgq.com
    192.168.1.8 centos7.4-2.fgq.com
    192.168.1.6 centos7.4-3.fgq.com
    192.168.1.12 centos7.4-4.fgq.com
    
    centos7.4-3和centos7.4-4  设置Real-Server
    yum -y install nginx
    vim /usr/share/nginx/html/index.html
    :1,$d  删除原来的内容,换为自己的内容
    <h1>RS1:CentOS7.4-3</h1>  centos7.4-3的配置
    <h1>RS2:CentOS7.4-4</h1>  centos7.4-4的配置
    systemctl start nginx.service 
    ss -ntl
    centos7.4
    手动测试
    curl 192.168.1.6  ok
    curl 192.168.1.12  ok
    centos7.4-3和centos7.4-4
    vim setrs.sh
    #!/bin/bash
    #
    vip=192.168.1.88
    mask=255.255.255.255
    iface="lo:0"
    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/lo/arp_announce
            echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    
            ifconfig $iface $vip netmask $mask broadcast $vip up
            route add -host $vip dev $iface
            ;;
    stop)
            ifconfig $iface down
    
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
            ;;
    *)
            echo "Usage:$(basename $0) start|stop"
            exit 1
            ;;
    esac
    chmod +x setrs.sh
    bash -n setrs.sh
    bash -x setrs.sh start
    ifconfig  显示"lo:0  192.168.1.88"
    cat /proc/sys/net/ipv4/conf/all/arp_ignore  验证 1 ok
    cat /proc/sys/net/ipv4/conf/lo/arp_announce  验证 2 ok
    scp setrs.sh centos7.4-4.fgq.com:/root/
    centos7.4-4
    ./setrs.sh start
    ifconfig  显示"lo:0  192.168.1.88"
    
    配置lvs集群
    centos7.4  
    yum -y install ipvsadm
    ifconfig ens34:0 192.168.1.88 netmask 255.255.255.255 broadcast 192.168.1.88 up
    ifconfig  显示ens34:0 192.168.1.88  ok
    centos7.4-5
    ping 192.168.1.88  ok
    arp 192.168.1.88
    arp  显示VIP仅仅对应centos7.4的mac地址,其他没有响应  ok
    centos7.4
    ipvsadm -A -t 192.168.1.88:80 -s rr 
    ipvsadm -a -t 192.168.1.88:80 -r 192.168.1.6:80 -g
    pvsadm -a -t 192.168.1.88:80 -r 192.168.1.12:80 -g
    ipvsadm -Ln
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok
    centos7.4
    ipvsadm -C  清空策略
    ifconfig ens34:0 down
    ifconfig  没有VIP了
    在centos7.4上测试完后,再在centos7.4-2上测试lvs是否可以调度
    centos7.4-2
    yum -y install ipvsadm
    ifconfig ens34:0 192.168.1.88 netmask 255.255.255.255 broadcast 192.168.1.88 up
    ifconfig
    ipvsadm -A -t 192.168.1.88:80 -s rr 
    ipvsadm -a -t 192.168.1.88:80 -r 192.168.1.6:80 -g
    ipvsadm -a -t 192.168.1.88:80 -r 192.168.1.12:80 -g
    ipvsadm -Ln
    centos7.4-5
    arp -d 192.168.1.88  清除缓存记录
    ping 192.168.1.88  ok
    arp 192.168.1.88
    arp  显示VIP仅仅对应centos7.4-2的mac地址,其他没有响应  ok
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok
    centos7.4-2
    ipvsadm -C  清空策略
    ifconfig ens34:0 down
    ifconfig  没有VIP了
    
    配置keepalived后,客户端(centos7.4-5)可自动更新arp记录,不用自己再手动更新了
    centos7.4和centos7.4-2
    vim /etc/keepalived/keepalived.conf
    更改vrrp_instance中的virtual_ipaddress的IP  如下图2
    添加virtual_server信息  如下图2和3
      光标移动到"#virtual_server 10.10.10.2"的上一行
        :.,$d  
      光标移动到"#virtual_server 192.168.200.100"的上一行
        :.,$s@^#@@g  
    virtual_server 192.168.1.88 80 {
        delay_loop 6
        lb_algo rr 
        lb_kind DR
        protocol TCP
        
        real_server 192.168.1.6 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
                  status_code 200  也可使用校验码:genhash -s 192.168.1.6 -p 80 -u /
                } 
                connect_timeout 2
                nb_get_retry 3
                delay_before_retry 1
            }   
        }   
        
        real_server 192.168.1.12 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
                  status_code 200
                } 
                connect_timeout 2
                nb_get_retry 3
                delay_before_retry 1
            }   
        }
    } 
    注意:另外一种写法--把HTTP变为TCP(此处不做演示了)
      HTTP_GET(产生大量干扰日志) 变为 TCP_CHECK(四层检测,不会产生干扰日志)
      删除"url {...} "的内容
    systemctl status keepalived.service
    systemctl stop keepalived.service
    centos7.4-2
    systemctl start keepalived.service
    systemctl status keepalived.service; ip a  显示VIP
    ipvsadm -Ln  显示lvs策略
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok
    centos7.4
    systemctl start keepalived.service
    systemctl status keepalived.service; ip a  显示VIP
    ipvsadm -Ln  显示lvs策略
    centos7.4-2
    systemctl status keepalived.service; ip a  VIP转移,变为备用
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok
    不用清除arp缓存,可以直接响应
    centos7.4
    systemctl stop keepalived.service
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok  高可用ipvs
    centos7.4-3(Real Server1)
    iptables -A INPUT -p tcp --dport 80 -j REJECT 
    iptables -vnL  发现对应的策略中拦截了几个报文
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  只显示RS2(centos7.4-4)的内容
    centos7.4-3(Real Server1)
    iptables -F  清空策略
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok
    
    后端的两个Real Server都down掉了,此时需要sorry server显示内容--前端调度器上配置
    centos7.4和centos7.4-2
    yum -y install nginx
    vim /usr/share/nginx/html/index.html
    <h1>Sorry From Director1/2</h1>
    systemctl start nginx.service 
    ss -ntl  80端口
    centos7.4-5
    curl 192.168.1.7/8  ok,显示sorry server的信息
    centos7.4和centos7.4-2
    vim /etc/keepalived/keepalived.conf
    virtual_server中添加信息:
    sorry_server 127.0.0.1 80  如下图4  监听在本机
      也可以添加如下信息,发送邮件通知
      notify_up  <STRING>|<QUOTED-STRING>  检测成功,调用此脚本(string)进行通知  不再演示
      notify_down  <STRING>|<QUOTED-STRING>  检测失败,调用此脚本(string)进行通知  不再演示
    systemctl stop keepalived.service
    systemctl start keepalived.service
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok
    centos7.4-3(关闭rs1)
    systemctl stop nginx  
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  只显示rs2
    centos7.4-4(关闭rs2)
    systemctl stop nginx
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  
      显示director1(centos7.4)的sorry server信息
    centos7.4(关闭director1)
    systemctl stop keepalived.service
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  
      显示director2(centos7.4-2)的sorry server信息
    centos7.4-3和centos7.4-4(开启rs1和rs2)
    systemctl start nginx.service
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok
    centos7.4(开启director1)
    systemctl start keepalived.service; ip a  VIP转移至director1--centos7.4
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询 ok  访问不受影响
    
    
    

    图1


    image.png

    图2


    image.png
    图3
    image.png

    图4


    image.png
    keepalived对服务的高可用
    效果好--调度器(本身没有存储数据)
    效果差--存储服务(keepalived转移IP和进程,但不会转移数据)
    共享存储
    NAS:网络附加存储,存储服务器:nfs/cifs-server--文件接口--锁管理系统
    SAN:存储区域网络,块级别:分区格式化/挂载使用--块接口--无锁管理系统
      两个机器共用一块硬盘,主机数据会更新至硬盘
      二者对数据的修改不一致,时间戳紊乱,会导致文件系统崩溃
    隔离机制
      节点级别:STONITH(爆头)--常用于共享存储--关闭其中一个节点
      资源级别:资源隔离
    keepalived基于脚本调整权限/优先级/...,来高可用服务--资源级别
    
    centos7.4  keepalived+nginx  之前已经安装
    centos7.4-2  keepalived+nginx  之前已经安装
    systemctl status keepalived.service; systemctl stop keepalived.service
    systemctl status nginx; systemctl stop nginx; systemctl start nginx
    grep -i 'vrrp_script' /usr/share/doc/keepalived-1.3.5/samples/*
    cat /usr/share/doc/keepalived-1.3.5/samples/keepalived.conf.vrrp.localcheck
      参考文档
    脚本功能: /etc/keepalived/down文件: 存在--降权,不存在--不降权
    centos7.4和centos7.4-2
    vim /etc/keepalived/down.sh
      #!/bin/bash
      if [[ -f /etc/keepalived/down ]];then
              weight -10
      fi
    chmod +x /etc/keepalived/down.sh
    vim /etc/keepalived/keepalived.conf
      删除virtual_server内容,添加vrrp_script和track_script  如下图1
    vrrp_script chk_down {
       script "/etc/keepalived/down.sh"
       interval 2
       fall 2
       rise 2
    }
        track_script {
            chk_down
        }
    systemctl start keepalived
    systemctl status keepalived; ip a
    centos7.4
    tcpdump -nn -i ens34 host 224.110.110.18  一直开着,看变化
    touch /etc/keepalived/down; ip a  权重变化,VIP转移
    centos7.4-2: ip a  显示VIP
    centos7.4
    rm -rf /etc/keepalived/down; ip a  权重变化,显示VIP
    centos7.4-2: ip a  VIP消失
    
    高可用nginx集群
    脚本: nginx-ok-权重默认;nginx-no-权重降低
    centos7.4和centos7.4-2
    systemctl stop nginx.service
    vim /etc/nginx/nginx.conf  
      如下图2
    systemctl start nginx.service 
    centos7.4-5
    for i in {1..10};do curl 192.168.1.7;sleep 0.3;done  轮询ok
    for i in {1..10};do curl 192.168.1.8;sleep 0.3;done  轮询ok
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询ok
    centos7.4
    ip a
    touch /etc/keepalived/down; ip a  权重变化,VIP转移
    centos7.4-2
    ip a  显示处VIP
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询ok
    虽然VIP转移,但是客户访问不受影响
    centos7.4
    rm -rf /etc/keepalived/down; ip a  显示VIP
    
    centos7.4和centos7.4-2
    systemctl stop keepalived.service
    vim /etc/keepalived/keepalived.conf
    添加vrrp_script和track_script  如下图3
    centos7.4-2
    systemctl start keepalived.service 
    systemctl status keepalived.service  显示"VRRP_Script(chk_nginx) succeeded"
    ip a  显示VIP
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询ok
    centos7.4
    systemctl start keepalived.service 
    systemctl status keepalived.service; ip a  显示VIP
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询ok
    
    centos7.4和centos7.4-2
    vim notify.sh
    在backup选项中添加启动服务的信息,在备用节点中启动服务
    当主节点down机,备节点的服务初始时已经启动,可以直接上线工作
      backup)
              notify backup
              systemctl start nginx
              ;;
    centos7.4
    systemctl stop nginx
    ip a  重复多次,VIP变化从无到有
      虽然停止服务,转为备用节点
      但是notify.sh中bacckup重启服务,又把VIP抢回来了
    yum -y install httpd
    systemctl stop nginx.service && systemctl start httpd  
      停止服务,转为备用节点
      又启动httpd服务,占用了80端口
      但是如果想nginx服务上线,还要手动操作
      解决方案:配置监控系统--zabix(后面讲)
      不过已经实现了服务故障,VIP转移的功能
    systemctl stop httpd
      虽然释放了80端口,但是检查节点的时间已经过去
      nginx服务还是不能自动启动,需要手动启动
    
    双主模型
    高可用+负载均衡nginx,避免资源浪费,再添加一个VIP即可
    centos7.4和centos7.4-2
    vim /etc/keepalived/keepalived.conf  
    添加"vrrp_instance VI_2"的信息
      如下图4--centos7.4
      如下图5--centos7.4-2
    systemctl stop keepalived.service
    centos7.4-2
    systemctl start keepalived.service 
    systemctl status keepalived.service; ip a  显示两个VIP
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询ok
    for i in {1..10};do curl 192.168.1.99;sleep 0.3;done  轮询ok
    centos7.4
    systemctl start keepalived.service 
    systemctl status keepalived.service; ip a  显示VIP1
    centos7.4-2
    systemctl status keepalived.service; ip a  显示VIP2
    centos7.4-5
    for i in {1..10};do curl 192.168.1.88;sleep 0.3;done  轮询ok
    for i in {1..10};do curl 192.168.1.99;sleep 0.3;done  轮询ok
    要求: nginx不要做会话绑定
    生产中,很少使用会话绑定来追踪用户,经常使用sesson replication cluster/session server
    现在只需要在dns记录上添加两条A记录192.168.1.88/192.168.1.99即可
    web站点架构  如下图6  keepalived高可用调度器
    
    

    图1


    image.png

    图2


    image.png
    图3
    image.png

    图4


    image.png
    图5
    image.png
    图6
    image.png

    相关文章

      网友评论

        本文标题:keepalived

        本文链接:https://www.haomeiwen.com/subject/kbaglftx.html