Linux keepalived+lvs实现高可用负载均衡
LVS的具有强大的负载均衡功能,但是它缺少对负载层节点(DS)的健康状态检测功能,也不能对后端服务(RS)进行健康状态检测;keepalived是专门用来监控高可用集群架构的中各服务的节点状态,如果某个节点异常或故障,它可以检测到并将故障节点从集群中剔除,当故障节点恢复后,可以自动将该节点加入到集群中。
部署环境
| LVS+keepalived 主节点 | DIP:172.30.100.111 | VIP:172.30.100.1 |
| LVS+keepalived 备节点 | DIP:172.30.100.125 | VIP:172.30.100.1 |
| nginx1 | DIP:172.30.100.126 | VIP:172.30.100.1 |
| nginx2 | DIP:172.30.100.127 | VIP:172.30.100.1 |
lvs主节点
keepalived的配置文件中有设置lvs信息的参数,所以不需要手动添加虚拟IP、ipvs规则等。
! Configuration File for keepalived # 全局配置定义
global_defs {
notification_email {
root@localhost.localdomain
}
notification_email_from keepalived@msfpay.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_1
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_mcast_group4 224.17.17.17
} # 虚拟服务设置
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 168
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 3333
}
virtual_ipaddress {
172.30.100.1
}
} # lvs规则模式等和realserver信息设置
virtual_server 172.30.100.1 80 {
delay_loop 5
lb_algo wrr
lb_kind DR
persistence_timeout 50
protocol TCP sorry_server 172.30.100.105 80 real_server 172.30.100.126 80 {
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 2
delay_before_retry 1
}
} real_server 172.30.100.127 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 2
delay_before_retry 1
}
}
}
lvs备节点
备节点主要是修改了state为BACKUP,并且设置优先级低于主节点。
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost.localdomain
}
notification_email_from keepalived@msfpay.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_2
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_mcast_group4 224.17.17.17
}
vrrp_instance VI_1 {
state BACKUP # 设置为备节点
interface eth0
virtual_router_id 168
priority 50 # 优先级低于主节点
advert_int 1
authentication {
auth_type PASS
auth_pass 3333
}
virtual_ipaddress {
172.30.100.1
}
}
virtual_server 172.30.100.1 80 {
delay_loop 5
lb_algo wrr
lb_kind DR
persistence_timeout 50
protocol TCP
sorry_server 172.30.100.105 80
real_server 172.30.100.127 80 {
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 172.30.100.126 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
nginx服务器
本次测试使用的是DR模式,所以real server必须添加VIP和修改内核arp参数等操作。DR模式配置详解:https://www.cnblogs.com/houyongchong/p/10535993.html。后端nginx服务必须能够正常访问。
验证
1、验证keepalived对lvs服务的高可用
当配置完成,所有服务正常工作,此时keepalived主节点应该是111机器,然后手动停掉主节点的keepalived服务,模拟主节点崩溃导致服务不可用,然后会发现VIP自动转移到备节点机器上,nginx服务也可以正常访问。
2、验证keepalived对后端服务的健康状态检测
恢复正常工作,查看keepalived服务自动配置的ipvs规则,正常情况有两台real server;然后手动停掉nginx1的服务,模拟一台real server崩溃导致nginx服务不可用,查看ipvs规则发现奔溃掉的real server已被剔除;然后再恢复nginx1服务,再次查看ipvs规则发现被剔除的nginx1又被添加进来。
Linux keepalived+lvs实现高可用负载均衡的更多相关文章
- Keepalived+LVS(dr)高可用负载均衡集群的实现
一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...
- Keepalived+lvs 搭建高可用负载均衡
本站点停止更新,请访问:blog.coocap.com 不了解负载均衡高可用的童鞋,强烈建议先看keepalived+nginx高可用负载均衡: 传送门(求粉):http://www.cnblogs. ...
- Keepalived+LVS实现高可用负载均衡双主模式
LVS是一种集群(Cluster)技术:采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一 ...
- keepalived+LVS搭建高可用负载均衡系统
相关架构设置: 1)vip : 192.168.137.6 2)DS master ip : 192.168.137.8 3)DS backup ip : 192.168.137.9 4)RS 1 i ...
- LVS+Keepalived搭建MyCAT高可用负载均衡集群
LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...
随机推荐
- .net 多线程 Thread ThreadPool Task
先准备一个耗时方法 /// <summary>/// 耗时方法/// </summary>/// <param name="name">< ...
- c# Lambda操作类封装
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- WinForm DataGridView实时更新表格数据
前言 一个特殊的项目没有用第三方控件库,但用到了DataGridView,由于是客户端产生的数据,所以原始数据源就是一个集合. 根据需要会向集合中添加数据项,或是修改某些数据项的值,但DataGrid ...
- Vmware安装CentOs7+gitlab(二)
在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ssh和python sudo y ...
- C#基础委托回顾
C#基础委托回顾 前言 快忘记了. 委托的特点 委托类似于 C++ 函数指针,但它们是类型安全的. 委托允许将方法作为参数进行传递. 委托可用于定义回调方法. 委托可以链接在一起:例如,可以对一个事件 ...
- C#中++i与i++的区别
日常编程中经常用到++i与i++,知识点虽然很小,但有时候会犯迷糊,在这里小小的记录一下. ++i 即前递增,顾名思义也就是先自增后传值: 举个栗子 int i=5; int j=++i; 此时i的值 ...
- Lua rawget rawset newindex 函数定义和例子
在绝大多数情况下,我们都不会用到rawget和rawset. 本文的运行环境:lua 5.3 for windows rawset 赋值操作 rawset是在设置值的过程,进行处理,比如:当某个值改变 ...
- qt5.11.2+vs2017环境下opencv3.4.1编译配置
OpenCV是一个开源的计算机库,它可以帮助视觉工作者做很多富有创造性的工作,在图像处理领域扮演着重要的角色.由于opencv3.x的存在,不管你是学生还是研究人员,是专家还是初学者,都可以快速的建立 ...
- nginx正向代理和反正代理区别
1)正向代理:客户端 <一> 代理 一>服务端 客户端访问不到服务端,所以找了代理,由代理帮忙访问到了服务端 2)反向代理:客户端 一>代理 <一> 服务端 客户端 ...
- iOS 友盟错误分析-2019
友盟的错误分析越来越人性化了 前提集成了友盟统计,并打包的时候保留了.dSYM文件 先看看效果 可以看到bug显而易见的被发现了!那个文件夹,那一行代码 那么怎么才能这样呢 首先加入符号表,就是.dS ...