• Centos 7.x 设置Lvs+ Keepalived


    【实验环境】

    • Centos 7.2
    • Nginx 

    以下为本次试验所使用的地址:

    • VIP:192.168.136.100
    • LVS-1:192.168.136.170
    • LVS-2:192.168.136.166

    【安装】

    在两个节点上安装lvs、keepalived(提前已经安装好nginx)

    yum install ipvsadm keepalived -y

    设置配置脚本

    vim ipvsadm.sh

    #!/bin/bash
    
    vip=192.168.136.100
    ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
    route add -host $vip dev lo:0
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    sysctl -p >/dev/null 2>&1

    执行脚本(在两台lvs主机上执行脚本)

    sh ipvsadm.sh

    查看是否设置成功

    [root@localhost /]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet 192.168.136.100/32 brd 192.168.136.100 scope global lo:0
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever

    【设置Keepalived】

    主节点(Master),清空文件内容

    vim /etc/keepalived/keepalived.conf  

    global_defs{
      router_id LVS_DEVEL
    }
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.136.100
        }
    }
    
    virtual_server 192.168.136.100 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 0
        protocol TCP
    
        real_server 192.168.136.170 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    
        real_server 192.168.136.166 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }

    从节点(Backup),清空文件内容

    vim /etc/keepalived/keepalived.conf  

    global_defs{
      router_id LVS_DEVEL
    }
    vrrp_instance VI_1 {
        state BACKUP
        interface ens33
        virtual_router_id 51
        priority 99
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.136.100
        }
    }
    
    virtual_server 192.168.136.100 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 0
        protocol TCP
    
        real_server 192.168.136.170 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    
        real_server 192.168.136.166 80 {
            weight 1
            TCP_CHECK {
                connect_timeout 10
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
            }
        }
    }

    主节点和从节点的区别

    主节点:MASTER
    从节点:BACKUP
    state MASTER -> state BACKUP
    
    主节点优先级:100
    从节点优先级:99
    priority 100 -> priority 90
    
    另外:注意interface ens33,其中ens33是网卡名称,根据自己主机情况进行修改

    开启路由转发

    一次性开启:
    echo "1">/proc/sys/net/ipv4/ip_forward
    
    永久性开启:
    vim /etc/sysctl.conf
    #添加
    net.ipv4.ip_forward=1
    退出保存
    
    #配置生效
    sysctl -p

    启动Keepalived(先主后从顺序开启)

    systemctl start keepalived.service

    查看是否开启成功

    [root@localhost /]# 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.136.100:80 rr
      -> 192.168.136.166:80           Route   1      0          0         
      -> 192.168.136.170:80           Route   1      0          0      

    打开浏览器输入VIP地址查看,是否成功,如果访问成功尝试断开其中某台,看是否会自动切换另外一台服务器进行访问。

  • 相关阅读:
    scrapy学习(完全版)
    Python中模块与包的导入(朴实易懂版的总结)
    urllib.request.urlretrieve()用于下载制定url内容到本地
    IDEA自定义liveTemplates(方法模板、类模板)
    MySQL建表DDL规范(欢迎补充)
    15分钟搭建RocketMQ源码调试环境
    2500-使用MyBatis操作MySQL进行批量更新的注意事项
    手动注入bean到spring容器
    1000-ms-HashMap 线程安全安全问题
    1000-ms-maven相关问题
  • 原文地址:https://www.cnblogs.com/willamwang/p/11364972.html
Copyright © 2020-2023  润新知