centos搭建keepalived+ipvsadm实现高可用lvs分发

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

这文档适合非常简单的不需要任何技术完全照着弄的拥有三台以上机器的情况。


虚ip192.168.200.16

keepalived主192.168.98.11

keepalived备192.168.98.98

realserver一192.168.99.131

realserver二192.168.98.11或192.168.98.98(当11存活时候,就是11当rs,死了就98当rs)


1、keepalived主192.168.98.11进行如下安装配置。

yum install -y wget ipvsadm vim

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

tar xf keepalived-1.2.24.tar.gz 

cd keepalived-1.2.24

./configure --prefix=/usr/local/keepalived

make && make install

find /usr/local/keepalived -name "keepliaved" -type f |while read L;do chmod +x $L;done

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cd /usr/local/keepalived/etc/keepalived/

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

chkconfig --add keepalived

chkconfig keepalived on

vim /etc/keepalived/keepalived.conf 粘贴下面的。

vrrp_instance ha44 {

    state MASTER

    interface eth0

#virtual_router_id后面的数字相同就是在同一组了,取值0-255,且auth_pass也必须相同。

    virtual_router_id 251

#priority取值范围1-254

    priority 150

#advert_int广播间隔,这值影响master挂多久切换到backup,我实测设置2或者3的话切换间隔较短。

    advert_int 2

    authentication {

        auth_type PASS

        auth_pass 1234

    }

    virtual_ipaddress {

        192.168.200.16

#可以自定义掩码、广播。

#        192.168.200.16/16 brd 192.168.255.255 dev eth0

    }

#可以自定义网关,不过我没这么用过。

#    virtual_routes {

#        192.168.200.0/16 via 192.168.98.1 dev eth0

#    }

}

#如果想用lvs的功能,就添加以下内容,keepalived会自动调用ipvsadm功能。

virtual_server 192.168.200.16 80 {

    delay_loop 3

    lb_algo rr

    lb_kind DR

    persistence_timeout 50

    protocol TCP


    real_server 192.168.98.11 80 {

        weight 20

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

    real_server 192.168.99.131 80 {

        weight 100

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

保存退出

/etc/init.d/keepalived start


2、keepalived备192.168.98.98进行如下安装配置。

yum install -y wget ipvsadm vim

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

tar xf keepalived-1.2.24.tar.gz 

cd keepalived-1.2.24

./configure --prefix=/usr/local/keepalived

make && make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cd /usr/local/keepalived/etc/keepalived/

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

chkconfig --add keepalived

vim /etc/keepalived/keepalived.conf 粘贴下面的。

vrrp_instance ha44 {

    state BACKUP

    interface eth0

#virtual_router_id后面的数字相同就是在同一组了,取值0-255,且auth_pass也必须相同。

    virtual_router_id 251

#priority取值范围1-254

    priority 20

#advert_int广播间隔,这值影响master挂多久切换到backup,我实测设置2或者3的话切换间隔较短。

    advert_int 2

    authentication {

        auth_type PASS

        auth_pass 1234

    }

     virtual_ipaddress {

        192.168.200.16

#可以自定义掩码、广播。

#        192.168.200.16/16 brd 192.168.255.255 dev eth0

    }

#可以自定义网关,不过我没这么用过。

#    virtual_routes {

#        192.168.200.0/16 via 192.168.98.1 dev eth0

#    }

}

#如果想用lvs的功能,就添加以下内容,keepalived会自动调用ipvsadm功能。

virtual_server 192.168.200.16 80 {

    delay_loop 3

    lb_algo rr

    lb_kind DR

    persistence_timeout 50

    protocol TCP


    real_server 192.168.98.98 80 {

        weight 20

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

    real_server 192.168.99.131 80 {

        weight 100

        TCP_CHECK

        {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

保存退出

service keepalived start


3、realserver一192.168.99.131的配置。

yum install -y vim

vim /etc/init.d/lvsrs 粘贴如下内容。

#!/bin/sh

#chkconfig:345 61 61

#description:LVSRS

VIP=192.168.200.16


Usage ()

{

echo "Usage:`basename $0` (start|stop)"

exit 1

}


if [ $# -ne 1 ];then

Usage

fi


case $1 in

start)

echo "configuring vip for Real Server"

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

echo "1" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/eth0/arp_announce

if [ $? -eq 0 ]

then

/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 up

/sbin/route add -host $VIP dev lo:0

sleep 5

echo "Real Server started."

else

echo "error occurred!"

fi

;;

stop)

/sbin/ifconfig lo:0 down

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 "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_announce

if [ $? -eq 0 ]

then

sleep 2

echo "Real Server has stopped."

else

echo 'error occurred occurred! Maybe "lo:0" has stopped already.'

fi

;;

*)

Usage

esac

保存退出

chmod +x /etc/init.d/lvsrs

chkconfig --add lvsrs

service lvsrs start


4、realserver二192.168.98.11或192.168.98.98,这俩由于已经配置了keepalived,由keepalived服务代管ipvsadm,所以它俩不需要再配置啥就已经自然成为了realserver了。


备注:

1、以上配置用于这仨机器都提供http服务的情况。

2、如果多台keepalived服务器需要提供更多服务,就复制添加更多virtual_server并修改端口即可。如果不配置virtual_server部分,keepalived就不代管lvs了,那么同一时刻只有一台机器工作而已,这台出了问题,vip才会飘到下一台上。vip在哪台,就是哪台工作,所以通常,lvs和keepalived是配合使用的,是需要配置virtual_server部分的。

3、若配置多个vrrp_instance,每个instance需要拥有独一无二的virtual_router_id,与其他instance相同是不行的。多台机器启动keepalived服务后,就是以virtual_router_id的值来进行配对儿的。

4、keepalived配置文件中的priority优先级的设置大有玄机!设置的不科学就会事与愿违!建议查看一下相关资料儿了解了以后再设置。



本文转自 朱科强 51CTO博客,原文链接:http://blog.51cto.com/zhukeqiang/1868886,如需转载请自行联系原作者

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
10月前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
10月前
|
关系型数据库 MySQL Linux
centos7下 Mysql+Keepalived 双主热备高可用图文配置详解
centos7下 Mysql+Keepalived 双主热备高可用图文配置详解
156 0
|
10月前
|
Kubernetes 应用服务中间件 网络安全
CentOS7上二进制部署Kubernetes高可用集群(v1.18版本)
CentOS7上二进制部署Kubernetes高可用集群(v1.18版本)
491 0
|
监控 安全 Linux
虚拟机CentOS的Nginx+keepalived 高可用集群配置主从模式
虚拟机CentOS的Nginx+keepalived 高可用集群配置主从模式
226 0
|
存储 Linux 网络安全
centos7搭建keepalived+LVS+NFS高可用web群集
一、理论部分 Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
427 0
centos7搭建keepalived+LVS+NFS高可用web群集
|
6天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
60 25
|
17天前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
67 20
|
2月前
|
存储 分布式计算 Hadoop
Centos7.9安装kerberos
Centos7.9安装kerberos
87 25
|
2月前
|
存储 Shell 网络安全
Centos7.9安装openldap
Centos7.9安装openldap
59 16
|
2月前
|
数据可视化 Linux 应用服务中间件
Centos7.9安装phpldapadmin
Centos7.9安装phpldapadmin
63 15