• Centos7.4下keepalived-1.3.5的安装使用


    keepalived两个功能,一个是使lvs使用的vip高可用,一个是监控各个上游节点的对应端口是否正常工作,以保证快速剔除坏掉的节点。

    keepalived默认的yum 1.3.5有BUG,根本跑不起来,所以我们换成源码压缩包下载后编译安装的方式进行安装

    经过实验 CentOS7.4下的lvs不是不停轮询,而是一段时间内会绑定用户和实际目标服务器,keepalived中也会表现出来,不过我们可以换个ip访问一下,来验证我们的配置结果。

    本文出现三种节点名称,keepalived主节点和备用节点,以及RealServer——最终提供服务的服务器,注意将keepalived的主节点、备用节点、realserver分配为不同的机器

    1、安装依赖(本文使用的Centos7.4是最小安装,部分依赖不全,所以需要先安装依赖)

    yum install -y gcc gcc-c++  openssl-devel

    2、下载keepalived-1.3.5压缩包(下载地址),放在/usr/local目录下,并解压,步骤略

    3、进入解压后的目录中,执行以下命令:

    ./configure --prefix=/usr/local/keepalived && make && make install
    cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    mkdir -p /etc/keepalived
    cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
    cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    cp ./keepalived/etc/init.d/keepalived /etc/init.d/
    chmod 755 /etc/init.d/keepalived

    4、编辑keepalived.service

    vi /lib/systemd/system/keepalived.service

    将所有的字符串 “/usr/local/keepalived” 替换为空白,vi编辑器命令:【%s//usr/local/keepalived//g】

    5、刷新配置

    systemctl daemon-reload

    6、编辑/etc/keepalived/keepalived.conf配置为自己的配置(摘自传送门,有改动),示例:

    主节点:

    global_defs {  
       notification_email {  
             edisonchou@hotmail.com  
       }  
       notification_email_from sns-lvs@gmail.com  
       smtp_server 192.168.80.1  
       smtp_connection_timeout 30
       router_id LVS_DEVEL  # 设置lvs的id,在一个网络内应该是唯一的
    }  
    vrrp_instance VI_1 {  
        state MASTER   #指定Keepalived的角色,MASTER为主,BACKUP为备          
        interface eth1  #指定网卡名称,是实际使用的网卡,而非虚网卡
        virtual_router_id 51  #虚拟路由编号,主备要一致
        priority 100  #定义优先级,数字越大,优先级越高,主DR必须大于备用DR    
        advert_int 1  #检查间隔,默认为1s
        authentication {  
            auth_type PASS  
            auth_pass 1111  
        }  
        virtual_ipaddress {  
            192.168.80.200  #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个
        }  
    }  
    # 定义对外提供服务的LVS的VIP以及port
    virtual_server 192.168.80.200 80 {  
        delay_loop 6 # 设置健康检查时间,单位是秒                    
        lb_algo wrr # 设置负载调度的算法为wlc                   
        lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式   
        nat_mask 255.255.255.0                
        persistence_timeout 0          
        protocol TCP                  
        real_server 192.168.80.102 80 {  # 指定real server1的IP地址
            weight 3   # 配置节点权值,数字越大权重越高              
            TCP_CHECK {  
            connect_timeout 10         
            nb_get_retry 3  
            delay_before_retry 3  
            connect_port 80  
            }  
        }  
        real_server 192.168.80.103 80 {  # 指定real server2的IP地址
            weight 3  # 配置节点权值,数字越大权重越高  
            TCP_CHECK {  
            connect_timeout 10  
            nb_get_retry 3  
            delay_before_retry 3  
            connect_port 80  
            }  
         }  
    }
    View Code

    注意网卡名一定要和你机器上的一致。另外,virtual_router_id不要与同网络的其他的keepalived集群配置冲突。

    备用节点,需要修改:

    将MASTER改为BACKUP,并将priority由100改低一些

    7、在各个Real Server中添加脚本,命名为【rs.sh】(摘自传送门,有改动):

    SNS_VIP=$2
    #/etc/rc.d/init.d/functions
    case "$1" in
    start)
           ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
           /sbin/route add -host $SNS_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
           echo "RealServer Start OK"
           ;;
    stop)
           ifconfig lo:0 down
           route del $SNS_VIP >/dev/null 2>&1
           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_ignore
           echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
           echo "RealServer Stoped"
           ;;
    *)
           echo "Usage: $0 {start|stop}"
           exit 1
    esac
    exit 0

    增加执行权限:

    chmod 755 rs.sh

    执行:

    ./rs.sh start [VIP]

    该内容将VIP作为RealServer的一个类似127.0.0.1的IP添加到RealServer的回环IP列表中,让RealServer认为主节点通过VIP转发过来的包真的是发给自己的,从而正常处理该包,不至于认为数据包不合法。

    8、在主节点和备节点上分别执行 

    systemctl start keepalived

    9、其他注意内容

    A、如果在正式环境中,建议将添加回环地址作为开机启动项,并且keepalived 也配置成开机启动

    B、如果使用了防火墙,务必允许keepalived使用的vrrp组播通过防火墙,否则虚IP会同时出现在主备两台机器上。

    命令如下(网卡换成你的网卡即可):

    firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface [网卡] --destination 224.0.0.18 --protocol vrrp -j ACCEPT
    
    firewall-cmd --reload
  • 相关阅读:
    linux下vim配置以及一些常用的快捷键
    linux下java环境配置
    编译原理实习(应用预测分析法LL(1)实现语法分析)
    hdu 1063(java写高精度)
    loj 1271
    loj 1379(最短路变形)
    hdu 4114(状压dp)
    loj 1002(spfa变形)
    python生产者消费者模型
    python创建一个线程和一个线程池
  • 原文地址:https://www.cnblogs.com/flying607/p/8882617.html
Copyright © 2020-2023  润新知