LVS+Keepalived实现高可用负载均衡部署实战(上)

个人环境

(1)Centos 7.0
(2)Lvsadm
(3)Keepalived-2.0.12

LVS工作在ISO模型中的第四层,由于其工作在第四层,因此,因此与iptables类似,必须工作在内核空间上。因此lvs与iptables一样,是直接工作在内核上,叫ipvs,2.4内核版本以后已经集成了ipvs,因此只需要安装一个管理工具ipvsadm即可。

1.ipvsadm安装

yum install ipvsadm -y

2.LVS的三种工作模式和实现原理

“通过ipvs模块实现网络地址的改写和封装”
NAT:“通过修改IP地址或者端口”
TUNING:“通过ip地址的再次封装实现”
DR:“通过MAC地址的改写来实现”

特点:
NAT:数据请求和响应都要经过调度器
TUNING:需要在正式服务上绑定公网IP,不受地域的限制
DR:需要和realserver的一块网卡在同一个网络,在内一个realserver上需要绑定VIP

3.LVS之DR模式的配置及运用

对于实现此项目,前提是实现三种模式的一种,本次我就采用DR模式。

3.1 基础环境准备

3.1.1 集群拓扑图
LVS+Keepalived实现高可用负载均衡部署实战(上)_第1张图片
3.1.2 节点规划
LVS+Keepalived实现高可用负载均衡部署实战(上)_第2张图片
3.1.3 初始化配置
(1)配置主机名

hostnamectl set-hostname DS
su -l

(…略)
(2)处理防火墙

(…略)
(3)同步时钟源

yum  -y install ntp ntpdate
ntpdate cn.pool.ntp.org.
hwclock --systohc

以上步骤全部节点都需要设置

3.2 配置NFS数据共享服务器

3.2.1 在nfs-ser上配置服务端
(1)安装服务:

yum install -y nfs-utils rpcbind
rpm -qa nfs-utils rpcbind

(2)配置exports文件

[root@localhost data]# cat /etc/exports
/data 192.168.239.0/24(rw,sync)

(3)启动服务

systemctl restart nfs

(4)本地挂载并测试

[root@localhost ~]# mkdir /data
[root@localhost ~]# chown -R nfsnobody:nfsnobody /data
[root@localhost ~]# mount 192.168.239.6:/data /mnt
[root@localhost ~]# cd /data/
[root@localhost data]# ls
index.html  redis
[root@localhost data]# touch a
[root@localhost data]# cd /mnt
[root@localhost mnt]# ls
a  index.html  redis

本地挂载成功
3.2.2 在rs1,rs2上配置nfs客户端
(1)安装软件

yum install -y nfs-utils rpcbind

(2)本地测试

[root@rs2 basic]# showmount -e 192.168.239.6
Export list for 192.168.239.6:
/data 192.168.239.0/24

在rs2上执行相同的操作

3.3 配置WEB服务器

我用的是nginx,当然apache也行,毕竟安装起来方便。这里就省略如何安装nginx,apache的话:

yum install httpd -y

然后启动就好了。
3.3.1 挂载网页共享目录

mount -t nfs 192.168.239.6:/data /data/xingyun/basic       //这里是web服务器的网页存放的路径,nginx的自己设置,apache的默认在/var/www/html下
[root@rs2 basic]# vim /etc/fstab
192.168.239.6:/data /data/xingyun/basic nfs defaults 0 0
mount -a

在rs2上同样执行以上命令
3.3.2 在nfs服务器上创建测试目录

[root@localhost mnt]# cd /data/
[root@localhost data]# vim index.html
[root@localhost data]# cat index.html
this is a test from 192.168.239.6........

网页测试:
LVS+Keepalived实现高可用负载均衡部署实战(上)_第3张图片

3.4 配置LVS负载调度服务器

3.4.1 在DS节点上配置LVS负载均衡
(1)配置LVS
绑定浮动IP:

nmcli con mod ens33 +ipv4.addr 192.168.239.200/24
systemctl restart network
ipvsadm -A -t 192.168.239.200:80 -s rr
ipvsadm -a -t 192.168.239.200:80 -r 192.168.239.3:80 -g 
ipvsadm -a -t 192.168.239.200:80 -r 192.168.239.5:80 -g 
ipvsadm -Ln  //查看规则

(2)调整会话保持

ipvsadm --set 1 2 1    //简单点说,便于网页上刷新检测

3.4.2 在rs1,rs2上配置网络,绑定服务IP到回环网卡上

[root@rs2 basic]# cd /etc/sysconfig/network-scripts
[root@rs2 network-scripts]# vim ifcfg-lo:10
DEVICE=lo:10
IPADDR=192.168.239.200
NETMASK=255.255.255.255
ONBOOT=yes
[root@rs2 network-scripts]# systemctl restart network

在rs1上做相同的配置
LVS+Keepalived实现高可用负载均衡部署实战(上)_第4张图片
3.4.3 调整内核参数,关闭arp响应

[root@rs2 network-scripts]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@rs2 network-scripts]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

在rs1上做相同的配置
注:一定要把这个文件中的文件全部清除,再写入命令。我用的安装了mysql的节点做的,之前配置mysql的时候这个文件里面配置了东西,当时没在意结果出现了错误,苦逼的我花了一天半时间,才找到了问题的所在,感动的一批。。。
3.4.4 集群功能测试
使用浮动IP访问,刷新两次
LVS+Keepalived实现高可用负载均衡部署实战(上)_第5张图片
在rs1,rs2上动态打印日志:
在这里插入图片描述
在这里插入图片描述
由此可见,轮询效果。至此,DR模式全部完成。

4.keepalived安装与配置

4.1 keepalived 安装

4.1.1 安装环境说明

yum  -y install ntp ntpdate
ntpdate cn.pool.ntp.org.
hwclock --systohc
wget https://www.keepalived.org/software/keepalived-2.0.12.tar.gz

4.1.2 安装编译
LVS+Keepalived实现高可用负载均衡部署实战(上)_第6张图片
4.1.3 配置规范启动
从解压安装包文件中拷贝启功文件

[root@localhost keepalived]# cd /usr/local/src/keepalived-2.0.12/keepalived/etc
[root@localhost etc]# cp -p init /data/keepalived/etc/
[root@localhost etc]# cp -p init.d /data/keepalived/etc/

配置启动项

[root@localhost etc]# cp /data/keepalived/etc/init.d/keepalived /etc/init.d/
[root@localhost etc]# cp /data/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost etc]# mkdir /etc/keepalived/
[root@localhost etc]# cp /data/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost etc]# cp /data/keepalived/sbin/keepalived /usr/sbin/

4.1.4 启动服务

/etc/init.d/keepalived start 

在这里插入图片描述
可以看到没有进程,这里我需要澄清一下,以前的keepalived安装好以后,就可以启动,无需配置文件,不知什么时候开始,没有配置文件启动不了,也没有进程。

配置文件:

[root@localhost etc]# vim  /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_1
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.239.200/24 dev ens33 label ens:33:10
    }
}

在这里插入图片描述
可以看到,已经启动了。

此刻,深夜三点钟,我已经不行了,我不想年纪轻轻脱发。因此,我选择睡觉…

未完,待续。。。


下半部分更新好了,时空穿梭器:https://blog.csdn.net/D_Janrry/article/details/105076626

你可能感兴趣的:(笔记)