CentOS 7 LVS(包含UDP)安装
来源:互联网 发布:多益网络客户端 编辑:程序博客网 时间:2024/06/05 08:25
一、介绍
本文介绍有CentOS 7上安装负载均衡器,并且用keepalived保持主备,用206,207二台电脑做负载均衡器,同时负载均衡TCP和UDP协议,201,202,203三台电脑做真实服务器,负载均衡的端口是10000,结构图如下:
负载均衡器上安装ipvsadm, keepalived,(TCP,UDP)都负载均衡10000端口
真实服务器上打开虚拟IP,安装TCP,UDP服务,打开10000端口
二、负载均衡器上安装ipvsadm
CentOS 7已经包含LVS内核,只要安装LVS控制器ipvsadm,206,207上都要安装
# yum -y install ipvsadm
或者下载rpm文件 ipvsadm-1.27-7.el7.x86_64.rpm
# rpm -ivh ipvsadm-1.27-7.el7.x86_64.rpm
查看ipvsadm安装结果
#ipvsadm
三、负载均衡器上安装keepalived
# yum -y install keepalived
或者下载rpm文件 keepalived-1.3.5-1.el7.x86_64.rpm
# rpm -ivh keepalived-1.3.5-1.el7.x86_64.rpm
查看keepalived安装情况,keepalived服务默认不是开机启动,
#systemctl status keepalived
激活keepalived服务开机自动启动(不是启动)
#systemctl enabled keepalived
先不启动keepalived服务,等配置完了再启动
三、负载均衡器上编辑UDP侦测脚本
(1) 安装nmap网络侦测软件
#yum -y install nmap
(2) 编辑/etc/keepalived/UDP_CHECK.sh
#vi /etc/keepalived/UDP_CHECK.sh
#!/bin/bash
# /usr/bin/nmap --system-dns -sU -p$2 $1 | grep 'udp open' >/dev/null
# exit $?
if [ $# -ne 2 ];then
echo "Warning: UDP_CHECK error."
exit 1
else
CMD=`/usr/bin/nmap --system-dns -sU -p$2 $1 | grep "udp open" | wc -l`
if [ ${CMD} -eq 1 ];then
exit 0
fi
exit 1
Fi
(3) 更新UDP_CHECK.sh的执行权限
#chmod +x /etc/keepalived/UDP_CHECK.sh
四、配置keepalived
配置:206为MASTER,207为BACKUP,如果优先级不一样,级别高的master重启后会接管BACKUP,相当于客户端断开重连
#vi /etc/keepalived/keepalived.conf
注意红色字体以及TCP和UDP的不同配置,206上配置如下
global_defs {
notification_email {
zhangxz@189.cn
}
notification_email_from service@189.cn
smtp_server mail.189.cn
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #206为MASTER
interface ens18 #我的机器网卡名称
virtual_router_id 51
priority 200 #优先级, MASTER优先级高些
advert_int 1
authentication {
auth_type PASS
auth_pass rxdai6688
}
virtual_ipaddress {
192.168.110.200
}
}
######## start #############################
virtual_server 192.168.110.200 10000 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.110.201 10000{
weight 5
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.110.202 10000{
weight 5
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.110.203 10000{
weight 5
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 192.168.110.200 10000 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol UDP
real_server 192.168.110.201 10000{
weight 5
MISC_CHECK {
misc_path "/etc/keepalived/UDP_CHECK.sh 192.168.110.201 10000"
misc_timeout 3
}
}
real_server 192.168.110.202 10000{
weight 5
MISC_CHECK {
misc_path "/etc/keepalived/UDP_CHECK.sh 192.168.110.201 10000"
misc_timeout 3
}
}
real_server 192.168.110.203 10000{
weight 5
MISC_CHECK {
misc_path "/etc/keepalived/UDP_CHECK.sh 192.168.110.201 10000"
misc_timeout 3
}
}
}
注意红色字体,207上配置如下
global_defs {
notification_email {
zhangxz@189.cn
}
notification_email_from service@189.cn
smtp_server mail.189.cn
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP #207为BACKUP
interface ens18 #我的机器网卡名称
virtual_router_id 51
priority 100 #优先级, BACKUP优先级低些
advert_int 1
authentication {
auth_type PASS
auth_pass rxdai6688
}
virtual_ipaddress {
192.168.110.200
}
}
######## start #############################
virtual_server 192.168.110.200 10000 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.110.201 10000{
weight 5
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.110.202 10000{
weight 5
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.110.203 10000{
weight 5
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 192.168.110.200 10000 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol UDP
real_server 192.168.110.201 10000{
weight 5
MISC_CHECK {
misc_path "/etc/keepalived/UDP_CHECK.sh 192.168.110.201 10000"
misc_timeout 3
}
}
real_server 192.168.110.202 10000{
weight 5
MISC_CHECK {
misc_path "/etc/keepalived/UDP_CHECK.sh 192.168.110.201 10000"
misc_timeout 3
}
}
real_server 192.168.110.203 10000{
weight 5
MISC_CHECK {
misc_path "/etc/keepalived/UDP_CHECK.sh 192.168.110.201 10000"
misc_timeout 3
}
}
}
五、启动keepalived
#systemctl start keepalived
查看keepalived启动情况
#systemctl status keepalived
六、真实服务器在LoopBack网卡上配置虚拟IP
在三台真实服务器上执行同样的操作
(1)#vi /etc/init.d/lvsrealvip
#!/bin/bash
# chkconfig: 35 99 10
# description: tune lo:0 interface and arp response for lvs-real servers.
WEB_VIP=192.168.110.200
case "$1" in
start)
ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP up
/sbin/route add -host $WEB_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 $WEB_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"
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $WEB_VIP`
isrothere=`netstat -rn | grep "lo:0" | grep $web_VIP`
if [ ! "$islothere" -o ! "isrothere" ];then
# Either the route or the lo:0 device
# not found.
echo "LVS-DR real server Stopped."
else
echo "LVS-DR Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;;
esac
exit 0
(2)激活开机启动,并直接启动
#systemctl enable lvsrealvip
#systemctl start lvsrealvip
#systemctl status lvsrealvip
- CentOS 7 LVS(包含UDP)安装
- CentOS LVS安装配置
- Centos 安装LVS(dr)
- CentOS中安装lvs
- Linux-centos下安装lvs
- Centos 5.5 lvs+keepalived 安装配置
- centos下源码安装LVS+ Keepalived
- centos 7 lvs 负载均衡搭建
- centos 7 lvs 负载均衡搭建部署
- CentOS Docker容器中安装LVS负载均衡(二) keepalived
- Linux-centos下安装lvs+keepalived高可用
- Linux-centos下安装lvs+keepalived+nginx+tomcat
- CentOS安装emacs(包含错误处理)
- LVS安装
- 安装LVS
- LVS-安装
- CentOS 6.5 配置 LVS
- centos LVS配置说明
- 深度学习实践操作—从小白到大白(四):Ubuntu下Nvidia(英伟达)驱动安装
- PHP中MVC体系结构的基础知识
- 【机器学习】Bagging和Boosting基础及应用
- 【poj3349】Snowflake Snow Snowflakes(哈希表)
- 记录一个QScopedPointer forward declared 的编译错误
- CentOS 7 LVS(包含UDP)安装
- 算法训练 4-1打印下述图形
- 从内存模型的角度来看C++多态实现机制和C++析构函数为什么要用虚函数
- 手机h5布局(一)
- java实现scala的map方法,实现函数式编程
- Google Data Binding Library 谷歌官方数据绑定库(五) 可观察的数据对象
- Android6.0权限系统以及工具类的实现
- ubantu(Windows)安装tflearn
- mysql中的预编译语句