1、实验环境

4台节点
Keepalived1 + lvs1(Director1):192.168.31.4
Keepalived2 + lvs2(Director2):192.168.31.3
Real server1:192.168.31.2
Real server2:192.168.31.7
IP: 192.168.31.38

2、安装

Lvs + keepalived的2个节点安装:
yum install ipvsadm keepalived -y
Real server + nginx服务的2个节点安装:
yum install -y nginx

3、设置配置脚本

Real server节点2台配置脚本:
vim /opt/lvs_dr_rs.sh
#!/bin/bash

vip=192.168.31.38
ifconfig lo: $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev lo:
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1

复制到另外一台

scp lvs_dr-rs.sh root@192.168.31.3:/opt

执行脚本
bash /opt/lvs_dr_rs.sh
查看
ip a

keepalived节点配置(2节点):

主节点( MASTER )配置文件

vim /etc/keepalived/keepalived.conf

global_defs{
router_id LVS_DEVEL
}
vrrp_instance
VI_1 {
state MASTER
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.31.38
}
} virtual_server 192.168.31.38 {
delay_loop
lb_algo rr
lb_kind DR
persistence_timeout
protocol TCP
real_server 192.168.31.2 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
real_server 192.168.31.7 {
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

从节点( BACKUP )配置文件

拷贝主节点的配置文件keepalived.conf:

scp keepalived.conf  root@192.168.31.3:/etc/keepalived

然后修改如下内容:

state MASTER -> state BACKUP
priority -> priority

keepalived的2个节点执行如下命令,开启转发功能:

# echo  > /proc/sys/net/ipv4/ip_forward

4、启动nginx

systemctl start nginx

5、启动keepalived

先主后从分别启动keepalive

systemctl start keepalived.service

6、重启日志记录服务

修改vim /etc/sysconfig/keepalived日志保存路径

把KEEPALIVED_OPTIONS="-D" 修改为:KEEPALIVED_OPTIONS="-D -d -S 0"

在vim /etc/rsyslog.conf 末尾添加

local0.*                  /var/log/keepalived.log

 重启日志服务

systemctl restart rsyslog

重启keepalived

systemctl restart keepalived.service

7、排查

  • 查看/var/log/keepalived.log日志是否启动成功??
  • ipvsadm -ln查看是否正常
  • ipvsadm -ln --stats查看是否主才有数据,备没有数据
  • curl vip,然后查看ipvsadm -lnc数据是否异常

8、删除

ifconfig lo:0 down

route del 192.168.31.38

LVS DR模式的特性:

、CIP必须能够和VIP通讯,所以通常VIP是外网地址
、DIP和RIP为同一物理网络,否则无法向RS发送ARP广播
、RS上必须配置VIP地址,否则响应报文无法送达客户端,RS上的VIP对外界是不可见的,但RS可以接收目标地址为VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址
、RS上必须做ARP抑制,使RS不响应来自CIP的请求,相当于指定Director来响应CIP的请求
、调度器几乎支持所有的UNIX、LINUX系统,但不支持windows,但是RS可以为windows
、RS的网关不能指向DIP,应该指向出口网关
、DR模式下,不支持端口映射,即Director不能更改请求报文的端口
、DR模式效率很高,但配置麻烦,访问量不是非常大的情况下推荐使用haproxy或者nginx。标准:日访问量2000W PV以下,或者并发请求1W以下的可以考虑使用haproxy或nginx或使用LVS-NAT模式。
、直接对外的访问业务,例如:web服务做RS节点,RS最好使用外网IP,如果不直接对外的业务,例如MySQL、存储系统RS节点,最好使用内网IP

参考:https://www.cnblogs.com/edisonchou/p/4281978.html

https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665

https://blog.csdn.net/u012852986/article/details/52412174

CentOS7 搭建LVS+keepalived负载均衡的更多相关文章

  1. (转)CentOS7 搭建LVS+keepalived负载均衡(一)

    原文:http://blog.csdn.net/u012852986/article/details/52386306 CentOS7 搭建LVS+keepalived负载均衡(一) CentOS7 ...

  2. linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡

    最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...

  3. 搭建LVS+Keepalived负载均衡集群

    这两天学习了LVS+Keepalived负载均衡的搭建.网上的教程非常多,可是动起手来遇到不少问题. 如今把自己的搭建过程以及遇到的一些问题给分享下. 硬件环境: Macbook 8G内存.250G ...

  4. LVS+keepalived负载均衡

    背景:         随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高 ...

  5. Linux CentOs集群LVS+Keepalived负载均衡的实现

    准备工作 环境:Win10下Centos6.4虚拟机. 负载均衡:两台(一主一备)  LVS + Keepalived. HTTP服务器:3台. 给每台服务器配置IP 1.VIP(virtual ip ...

  6. LVS+keepalived负载均衡实战

    1 首先安装虚拟机 安装系统 这里 配置两台虚拟机 1:192.168.137.102   2:192.168.137.103 分别安装tomcat 默认80端口,同时都是开启状态 配置192.168 ...

  7. lvs+keepalived 负载均衡

    LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器.目前有三种IP负 载均衡技术(VS/NAT.VS/T ...

  8. LVS+Keepalived负载均衡配置

    简介 lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且可用性也没有前者高. lvs和keepalived组合使用后,配置lvs的VIP和负载均衡就都在ke ...

  9. MySQL 高可用:mysql+Lvs+Keepalived 负载均衡及故障转移

    系统信息: mysql主库 mysql从库 VIP 192.168.1.150 mysql 主主同步都设置 auto-increment-offset,auto-increment-increment ...

随机推荐

  1. Nand flash code

    (1)流水灯   1>我们来看原理图                                2>datasheet                             3> ...

  2. js转义和反转义html

    本文地址: http://www.cnblogs.com/daysme/p/7100553.html 下面的代码网上常用有,但不是想要的. JS实现HTML标签转义及反转义 http://blog.c ...

  3. 将tiff文件转化为jpg文件并保存

    jar包准备 jai-codec和jai-core 主要过程 private boolean parseTifFile(FileItem item) { logger.info("----- ...

  4. progressBar显示百分比

    this.lab_AllFiles.Text = progressBarAllFile.Value * 100 / progressBarAllFile.Maximum + "%" ...

  5. vue--v-model表单控件绑定

    原文链接:https://www.cnblogs.com/dyfbk/p/6868350.html v-model 指令在表单控件元素上创建双向数据绑定,下面一一进行示例解释. 1.v-model 双 ...

  6. BZOJ 2754 【SCOI2012】 喵星球上的点名

    题目链接:喵星球上的点名 首先可以发现姓和名两个串就是逗你玩的.在两个串中间插入一个\(10001\),当成一个串做就可以了. 于是我们的问题转化为了: 有\(n\)个串\(A_1,A_2,\dots ...

  7. hdu 6069 Counting Divisors 筛法

    Counting Divisors Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Oth ...

  8. FreeCodeCamp---advanced Algorithm Scripting解法

    Exact Change 设计一个收银程序 checkCashRegister() ,其把购买价格(price)作为第一个参数 , 付款金额 (cash)作为第二个参数, 和收银机中零钱 (cid) ...

  9. MongoDB 对象操作

    对象插入 >db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: 'xxx', url: ' ...

  10. 力扣(LeetCode)476. 数字的补数

    给定一个正整数,输出它的补数.补数是对该数的二进制表示取反. 注意: 给定的整数保证在32位带符号整数的范围内. 你可以假定二进制数不包含前导零位. 示例 1: 输入: 5 输出: 2 解释: 5的二 ...