Keepalived学习笔记

2019-12-03 00:13栏目:竞技宝app
TAG:

实例拓扑图:


LVS(Linux Virtual Server卡塔尔(قطر‎:Linux设想服务器,这里通过keepalived作为负载均衡器
HighlanderS(Real Server卡塔尔国:真实服务器
V福特ExplorerRP(Virtual Router Redundancy Protocol卡塔尔(قطر‎: 设想路由冗余商量, 消亡局域网中配置静态网关现身单点失效现象的路由左券
图片 1

图片 2

 

D福特Explorer1和DSportage2安插keepalived和lvs作主从构造或主主构造,普拉多S1和KoleosS2配备nginx搭建web站点。

1 Keepalived是怎么,有哪些功能?
1.1 Keepalived的定义
Keepalived 是七个依据VCR-VRP公约来兑现的LVS高可用方案
1.2 Keepalived的作用
1.2.1 通过IP漂移完结高可用
主副LVS共享三个设想IP,同有的时候候只有八个LVS据有VIP并对外提供劳动,若该LVS不可用,则VIP漂移至另意气风发台LVS并对外提供劳务;
1.2.2 对凯雷德S集群进行状态监察和控制
若纳瓦拉S不可用,则keepalived将其从集群中摘除,若奇骏S复苏,则keepalived将其重新参加集群中。
2 Keepalived有二种格局,各样形式的雷同点和分裂点是什么样?
2.1 Keepalived的方式系列
Keepalived有3种格局:NAT(地址转变);DWrangler(直接路由);TUN(隧道)
2.2 Keepalived的依次形式的牵线
2.2.1 NAT
亮点:集群中的瑞鹰S能够运用其余匡助TCP/IP操作系统,TiguanS可以分配Internet的保留私有地址,独有LVS供给三个法定的IP地址。
劣点:增加性有限。当XC90S节点增加到贰十二个或更加多时,LVS将改成任何系统的瓶颈,因为兼具的伸马鞍包和回应包都急需通过LVS再生。
2.2.2 TUN
作者们发现,许多Internet服务(比方WEB服务器)的央浼包不够长小,而应答包平日十分大。
可取:LVS只担任将倡议包分发给LacrosseS,而TiguanS将回应包直接发放客户。所以,LVS能管理很庞大的诉求量,这种艺术,风流倜傥台载荷均衡能为超过100台的SportageS服务,LVS不再是系统的瓶颈。
破绽:可是,这种方法亟待具有的服务器援救"IP Tunneling"(IP Encapsulation卡塔尔(قطر‎合同,笔者仅在Linux系统上完结了这些。
2.2.3 DR
亮点:和TUN雷同,LVS也只是散发诉求,应答包通过独立的路由方法重回给客商端。与TUN比较,DLAND这种完毕方式无需隧道结构,因而得以运用大多数操作系统做为QashqaiS。
相差:供给LVS的网卡必需与福特ExplorerS的网卡在一个网段上
3 不一致情势的结构格局,验证格局分别是什么?
3.1 基本的条件须求
需要2台LVS和n(n>=2)台RS
3.1.1 LVS
设置ipvsadm(LVS管理工科具)和keepalived;
开启路由转发效用:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
验证:
sysctl -p
net.ipv4.ip_forward = 1
3.1.2 RS
设置httpd(用于最后测量检验)
3.2 NAT格局配置
3.2.1 情形概述
操作系统 负载均衡情势 VIP NVIP
RHEL7.4 NAT 193.168.140.80 192.168.102.165

只顾:各节点的小时必要同盟(ntpdate ntp1.aliyun.com);关闭firewalld(systemctl stop firewalld.service,systemctl disable firewalld.service),设置selinux为permissive(setenforce 0);同一时间确定保障各网卡协理MULTICAST(多播)通讯。

LVS1 LVS2 RS1 RS2
ens3:192.168.102.161 ens3:192.168.102.162 ens3:192.168.102.163 ens3:192.168.102.164
ens4:193.168.140.79 ens4:193.168.140.83 网关:192.168.102.165 网关:192.168.102.165

经过命令ifconfig可以查看见是还是不是展开了MULTICAST:

3.2.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
qingean@163.com #故障选取联系人
}
notification_email_from admin@test.com #故障发送给别人
smtp_server 127.0.0.1 #本机发送邮件
smtp_connect_timeout 30
router_id LVS_MASTER #BACKUP上修正为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修改过改为BACKUP
interface ens4
virtual_router_id 51 #设想路由标志,主从相近
priority 100 #BACKUP上改过为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #中央认证密码必得风华正茂致
}
virtual_ipaddress {
193.168.140.80 #虚拟IP(VIP)
}
}
vrrp_instance LAN_GATEWAY { #概念网关
state MASTER #BACKUP上改动为BACKUP
interface ens3
virtual_router_id 62 #虚拟路由ID,主从相通
priority 100 #BACKUP上修更正改为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #ens3网关虚构IP
192.168.102.165
}
}
virtual_server 192.168.102.165 80 { #概念内网网关虚构IP和端口
delay_loop 6 #检查RS时间,单位秒
lb_algo rr #设置负载调治算法,轮叫(rr卡塔尔国、加权轮叫(wrr卡塔尔国、最小连接(lc卡塔尔国、加权最小连接(wlc卡塔尔(英语:State of Qatar)、基于局地性最小连接(lblc卡塔尔国、带复制的依赖局地性起码链接(lblcr卡塔尔国、目的地址散列(dh卡塔尔国和源地址散列(sh卡塔尔
lb_kind NAT #设置LVS负载均衡NAT方式
persistence_timeout 50 #同风度翩翩IP的接连60秒内被分配到均等台真正服务器(测量试验时建议改为0卡塔尔(قطر‎
protocol TCP #动用TCP公约检查PAJEROS状态
real_server 192.168.102.161 80 { #首先个网关节点
weight 3 #节点权重值
TCP_CHECK { #健检方式
connect_timeout 3 #老是超时
nb_get_retry 3 #重试次数
delay_before_retry 3 #重试间距/S
}
}
real_server 192.168.102.162 80 { #其次个网关节点
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 193.168.140.80 80{ #概念虚构IP
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.102.163 80 { #第一个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.102.164 80 { #第二个RS
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
3.2.3 RS
为具有奥迪Q3S增多网关为192.168.102.165:
vim /etc/sysconfig/network-scripts/ifcfg-ens3
GATEWAY=192.168.102.165
重启; 使用route –n查看是还是不是成功
IPVS connection entries
pro expire state source virtual destination
TCP 01:54 FIN_WAIT 10.167.225.60:53882 193.168.140.80:80 192.168.102.163:80
TCP 00:37 NONE 10.167.225.60:0 193.168.140.80:80 192.168.102.163:80

       图片 3

3.3 DTiggo形式配置
3.3.1 情状概述
操作系统 负载均衡方式 VIP
RHEL7.4 DR 193.168.140.80

keepalived的基本结构

LVS1 LVS2 RS1 RS2
ens4:193.168.140.79 ens4:193.168.140.83 ens4:193.168.140.152 ens4:193.168.140.224

搭建RS1:

[root@RS1 ~]# yum -y install nginx   #安装nginx
[root@RS1 ~]# vim /usr/share/nginx/html/index.html   #修改主页
    <h1> 192.168.4.118 RS1 server </h1>
[root@RS1 ~]# systemctl start nginx.service   #启动nginx服务
[root@RS1 ~]# vim RS.sh   #配置lvs-dr的脚本文件
    #!/bin/bash
    #
    vip=192.168.4.120
    mask=255.255.255.255
    case $1 in
    start)
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ifconfig lo:0 $vip netmask $mask broadcast $vip up
        route add -host $vip dev lo:0
        ;;
    stop)
        ifconfig lo:0 down
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
        ;;
    *) 
        echo "Usage $(basename $0) start|stop"
        exit 1
        ;;
    esac
[root@RS1 ~]# bash RS.sh start

3.3.2 LVS
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
qingean@163.com
}
notification_email_from admin@test.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修改革改为BACKUP
interface ens4
virtual_router_id 51
priority 100 #BACKUP上改造为90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
193.168.140.80
}
}
virtual_server 193.168.140.80 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.255
protocol TCP
real_server 193.168.140.152 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 193.168.140.224 80 {
weight 10
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}

版权声明:本文由龙竞技官网发布于竞技宝app,转载请注明出处:Keepalived学习笔记