keepalived安装配置

本文详细介绍Keepalived的安装步骤、配置方法及LVS相关配置。包括如何通过编译源码的方式安装Keepalived,配置主备节点,以及设置LVS负载均衡策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 keepalived安装配置

1、 下载:

wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz

没有wget 则安装 yum -y install wget


2、 安装:

tar -zxvf keepalived-1.2.7.tar.gz  
cd keepalived-1.2.7  
  
./configure --prefix=/usr/local/webserver/keepalived    

没报错的话进行编译安装
make && make install  


copy文件到指定目录  

cp /usr/local/webserver/keepalived/sbin/keepalived /usr/sbin/  
cp /usr/local/webserver/keepalived/etc/sysconfig/keepalived /etc/sysconfig/  
cp /usr/local/webserver/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/  
  
 

注:安装过程中,如果报错,说明系统缺少必要的库,在网上搜索下用 yum安装相应的库后重新执行即可,如下

安装gcc编译器及相关工具 yum -y install gcc gcc-c++ autoconf automake make
安装相关依赖的模块 yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

yum install -y openssl openssl-devel
yum install popt-devel -y
yum -y install gcc automake autoconf libtool make

通过编译源码的方式进行安装:./configure

3、 配置主keepalived

mkdir /etc/keepalived  
cd /etc/keepalived 

默认安装是没有配置文件的。新建一个:

vi /etc/keepalived/keepalived.conf

========内容如下===========

global_defs {
   lvs_id LVS_redis
}

vrrp_script chk_redis {
script "/opt/redis/sh/redis_check.sh"
weight -20
interval 2
}

vrrp_instance VI_1 {
    state backup
    #state MASTER
    interface bond0
    virtual_router_id 51
    priority 190
advert_int 5
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
chk_redis
    }
    virtual_ipaddress {
        10.0.11.0
    }
    notify_master /opt/redis/sh/redis_master.sh
    notify_backup /opt/redis/sh/redis_backup.sh
    notify_fault /opt/redis/sh/redis_fault.sh
    notify_stop /opt/redis/sh/redis_stop.sh
}

======== end ========


全局配置, 这里对整个keepalived都有用:
[plain] view plaincopy
global_defs{  
        notification_email{  
                szjava@126.com  
        }  
        notification_email_from 157814195@qq.com  
        smtp_server 127.0.0.1  
        smtp_connect_timeout 30  
        router_id id_1  
}  

解释一下:
notification_email 指定keepalived在发生事情的时候,发送邮件告知,可以有多个地址,每行一个。
smtp_server 发送email的smtp地址
smtp_connect_timeout 超时时间
router_id 运行keepalived的机器的一个标识

这里用的是简单配置,没有配email这些




vrrp_sync_groups vg1 {   
    group {  
           v_211  
    }  
}  
vrrp_instance v_211 {  
        state MASTER  
        interface eth0  
        virtual_router_id 51  
        mcast_src_ip 192.168.0.211  
        priority 101    #权值  
        advert_int 1    #默认检查时间  
        authentication {  
                auth_type PASS  
                auth_pass 1111  
        }  
        virtual_ipaddress {  #虚拟ip地址  
                192.168.0.212  
        }  
}  

解释:
state 指定实例初始化的状态,如果都是backup,那么就按照priority的值来确定谁是master。Priority最好相差50
interface 就是实例绑定的网卡,对外提供服务的网口
track_interface 设置额外的监控,里面的任意一个网卡出错,都会进入FAULT状态。
mcast_src_ip 发送多播包的地址,如果不设置,默认使用绑定的网卡的primary IP。
virtual_router_id  VRID标记(0-255)
priority 高优先级的为master,最好相差大于50
advert_int 检查间隔时间,默认1s
virtual_ipaddress 里面指定VIP,也就是切换到master时,这些IP会被添加,切换到backup时,就删除这些VIP。通过ip addr show 可以看到这些VIP。
lvs_sync_daemon_interface lvs syncd绑定的网卡,类似发送心跳
authentication 这一段设置认证
auth_type 认证方式,支持PASS和HA(据说HA有问题)
auth_pass 认证密码
nopreempt 设置不抢占,注意这个设置只能设置在backup状态主机上,而且这个主机的priority必须比另外的主机高
reempt_delay 抢占延迟,默认5分钟

4、 启动主keepalived:

/etc/rc.d/init.d/keepalived start
查看是否启动虚拟ip:
Ip a 

5、 配置备份keepalived

[plain] view plaincopy
global_defs {  
        notification_email {  
                szjava@126.com  
        }  
        notification_email_from 157814195@qq.com  
        smtp_server 127.0.0.1  
        stmp_connect_timeout 30  
        router_id id_2  
}  
  
  
vrrp_sync_groups vg1 {  
    group {  
           v_212  
    }  
}  
  
  
vrrp_instance v_212 {  
        state BACKUP  
        interface eth0  
        virtual_router_id 51  
        mcast_src_ip 192.168.0.210  
        priority 50    #权值  
        advert_int 1    #默认检查时间  
        authentication {  
                auth_type PASS  
                auth_pass 1111  
        }  
        virtual_ipaddress {  #虚拟ip地址  
                192.168.0.212  
        }  
}     

注意防火墙,防火墙应该添加:
vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p vrrp -j ACCEPT


原理说明:
1、 通过vrrp协议广播,每个keepalived vrrp都去争取master
2、 以virtual_router_id为组队标识。  同为一个vip服务的keepalived的virtual_router_id相同
3、 以priority 为权值,同一个virtual_router_id下那个priority大那个就是master,其它为backup

LVS相关配置

1、安装
[plain] view plaincopy
ln -sv /usr/src/kernels/2.6.18-164.el5-i686/ /usr/src/linux  
  
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz  
tar -zxvf ipvsadm-1.24.tar.gz  
cd ipvsadm-1.24  
make && make install  

keepalived.conf添加:
[plain] view plaincopy
virtual_server 192.168.0.215 80 {  
        delay_loop 6  
        lb_algo rr  
        lb_kind DR  
        persistence_timeout 50  
        protocol TCP  
  
  
        real_server 192.168.0.210 80 {  
        weight 3  
        TCP_CHECK {  
                connect_timeout 10  
                nb_get_retry 3  
                delay_before_retry 3  
        }  
        }  
        real_server 192.168.0.211 80 {  
        weight 3  
        TCP_CHECK {  
                connect_timeout 10  
                nb_get_retry 3  
                delay_before_retry 3  
        }  
        }  
}  


真实服务器运行sh:
vi /root/lvs_real.sh
[plain] view plaincopy
#!/bin/bash  
SNS_VIP=192.168.0.215  
  
/etc/rc.d/init.d/functions  
  
case "$1" in  
start)  
/sbin/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)  
       /sbin/ifconfig lo:0 down  
       /sbin/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 +x /root/lvs_real.sh
./lvs_real.sh


使用ipvsadm查看:
ipvsadm -L -n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值