LVS+Keepalived实现高可用的负载均衡

一、操作环境的配置

1、建立母盘虚拟机
  • virt-manager打开虚拟机图形管理器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    同时按< Ctrl > +< x > 结束并进入系统

  • 母盘的一些设置
    在这里插入图片描述
    DATE&TIME     时区选择亚洲-上海
    在这里插入图片描述
    磁盘分区选择自动划分
    在这里插入图片描述
    设置用户
    在这里插入图片描述

2、母盘的配置设定
  1. 关闭firewalld和selinux火墙
    在这里插入图片描述
    vim /etc/selinux/config 编辑selinux的配置文件
    在这里插入图片描述

  2. 配置网卡设置静态ip地址,dns解析,路由
    :可以用ping+ip地址的命令,测试ip网络是否通
    vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改网卡配置文件,eth0是网卡名称
    在这里插入图片描述
    systemctl disable --now NetworkManager 修改文件后可关闭网络管理器
    systemctl restart network 重启网络

  3. 配置好网络仓库或本地仓库(镜像与系统版本号相同)
    我已经搭建好yum源了,所以这里虚拟机可直接使用(如何搭建软件仓库在前文)
    在这里插入图片描述

  4. 设置主机名和本地dns解析
    hostnamectl set-hostname server1 设定此虚拟机的主机名为sever1
    vim /etc/hosts 配置本地解析,修改本地解析文件
    把后面可能需要使用的虚拟机一次性写好,以后不用再次配置
    在这里插入图片描述

  5. 安装所需工具和软件
    yum install bash-* -y 安装bash自动补齐工具
    yum install lftp httpd net-tools

3、清理压缩虚拟机并创建子盘
  • yum install virt-sysprep 若没有命令virt-sysprep则安装
    virt-sysprep -d lyx1 清理虚拟机的缓存,减少占用空间
    virt-sparsify --compress lyx1 serlyx1 压缩母盘虚拟机并重新生成名为serlyx1虚拟机
    qemu-img create -f qcow2 -b serlyx1 server1 快照生成子盘server1
    重复快照操作生成你所需要的虚拟机数量。
  • 新建的子盘的信息
    在这里插入图片描述
4、配置每个子盘的ip和主机名
  • 第一台主机跟母盘ip,主机名设定相同,不用修改
  • 设定第二台主机(更改ip和主机名重复操作)
    ip addr add 172.25.11.2 dev eth0 配置网卡ip地址,eth0是网卡名称
    hostnamectl set-hostname server2 设定此虚拟机的主机名为sever2
  • 设定第三,四…台主机 (橘色为需更改的地方)
    ip addr add 172.25.11.3 dev eth0
    hostnamectl set-hostname server3 设定此虚拟机的主机名为sever3
5、 若快照创建的子盘在管理器中没有显示可以按以下方法添加
  • virt-manager打开虚拟机图形管理器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

二、lvs的介绍

1、 四层负载平衡(Load Balance)
  1. 基亍传输层信息进行 调度
  2. 调度算法:WRR/WLC 等 – 工作模式:NAT/DR/TUNNEL
  3. 传输协议:TCP/UDP
    使用第四层传输层负载平衡是将网络流量负载平衡到多个服务器的最简单方法。
2、LVS四种工作模式
2.1. NAT模式
  • NAT模式是通过网络地址转换的方法来实现调度的。在一组服务器前有一个调度器,它们是通过 Switch/HUB 相连接的。这些服务器提供相同的网络服 务、相同的内容,即不管请求被发送到哪一台服务器,执 行结果是一样的。服务的内容可以复制到 每台服务器的本地硬盘上,可以通过网络文件系统(如 NFS)共享,也可以通过一个分布式文件系统 来提供。
  • NAT 的优点是服务器可以运行任何支持 TCP/IP 的操作系统,它只需要一个 IP 地址配置在调度器 上,服务器组可以用私有的 IP 地址。
  • 缺点是它的伸缩能力有限, 当服务器结点数目升到 20 时,调度 器本身有可能成为系统的新瓶颈,因为在 VS/NAT 中请求和响应报文都需要通过负载调度器。
    在这里插入图片描述
2.2 TUNNEL隧道工作模式
  • 它的连接调度和管理与 NAT 中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态地选择一台服务器,将请求报文封装在另一个 IP 报文中,再将封装后的 IP 报文转发给 选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为 VIP 的报文,服务器发现 VIP 地址被配置在本 地的 IP 隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。
  • 缺点:1. RS配置复杂(IPIP模块等) 2. RS上绑定VIP,风险大;
    在这里插入图片描述
2.3 DR工作模式
  • 当用户访问lvs调度器(vs)上的vip时,是通过修改请求报文的目标mac地址,在数据链路层通过调度算法将请求转发给真实服务器(rs),而真实服务器响应后的处理结果直接返回给客户端用户;所以说,vs 和rs 要都有vip,只是用arptables 处理了rs在数据链路层arp转发。由于必须处于同一vlan下,受到了局限性,但是其工作效率很高。client --> vs --> rs --> client
  • DR的不足:1. LVS - RS 间必须在同一个VLAN       2. RS上绑定VIP,风险太大
    在这里插入图片描述
2.4 FULLNAT转发模式
  • 主要思想:引入local address(内网ip地址),cip-vip转换为lip->rip,而 lip和rip均为IDC内网ip,可以跨vlan通讯。
    在这里插入图片描述
3、检查环境的命令
3.1、重要性高

在 LVS 刚部署完毕,或者运维操作完毕时,都必须检查以下配置;

  1. ip addr list,查看后端 VIP 是否绑定正确, 查看 local address 是否
    绑定正确

  2. 命令 ipvsadm –ln,查看流量是否过来,各 RS 上流量是否均匀,流量大
    小是否符合预期;

  3. 命令 ps aux | grep keepalived,查看 keepalived 进程个数是否正确

  4. 命令 tcpdump –i any –nnn | grep OSPF, 查看 ospf 心跳是否正常

  5. 命令 route –n, 查看 ospf 生成的路由是否正常

  6. 命令 tail –n 1000 /var/log/message, 查看 keepalived 启动日志是否异常

3.2、重要性低
  1. 执行 cat /proc/interrupts | grep ethx,其中 ethx 为万兆网卡,查看网卡
    中断是否被正确地绑定在 N 个核上;
  2. 在 client 上 curl vip,在 lvs 上 curl rs_ip,查看能否 curl 通;

三、DR模式下httpd负载均衡的实现

server1是调度器
server2和server3作为rs服务机

1、调度器server1主机的配置
  • 此实验用DR模式和轮询调度算法实现
    yum install ipvsadm httpd      安装lvs 管理器和httpd服务
    systemctl start httpd开启httpd服务
    echo server1 > /var/www/html/index.html 将内容sever1写入默认发布文件便于区分
    ip addr add 172.25.11.100/24 dev eth0 给网卡eth0添加100 ip,后实验中作为虚拟ip
    ipvsadm -A -t 172.25.11.100:80 -s rr 把ip地址100作为虚拟ip地址,此主机负责负载均衡,‘rr’是轮询调度算法
    ipvsadm -a -t 172.25.11.100:80 -r 172.25.11.2:80 -g 将server2主机作为rs服务机,当访问虚拟ip时,分流到server2主机
    ipvsadm -a -t 172.25.11.100:80 -r 172.25.11.3:80 -g 将server3主机作为rs服务机,当访问虚拟ip时,分流到server3主机
    在这里插入图片描述
    server1 的ip地址信息
    在这里插入图片描述
2、rs服务机server2,3主机的操作

server2和server3主机操相同,更改绿色的地方即可

  • 安装并启用http服务
    yum install httpd      安装httpd服务
    systemctl start httpd开启httpd服务
    echo server2 > /var/www/html/index.html 将内容sever2写入默认发布文件便于区分

  • 添加虚拟ip地址
    ip addr add 172.25.11.100/32 dev eth0 每台主机都给网卡eth0添加虚拟ip100

  • 注:经测试证明以上对于rs服务端的操作即能实现负载均衡,但因为server2,3有同样的虚拟ip,用户主机去访问虚拟ip100时也可能访问到server2,3,这样会使调度器无任何作用。
    我们可安装arp火墙并设定策略来避免此类问题,操作如下所示。

  • 安装并启用arp火墙
    yum install arptables_jf      安装arp火墙
    systemctl restart arptables 重新开启arp火墙

  • 设定arp火墙策略
    提示: arp -d 172.25.11.100       可删除指定ip的arp火墙策略
    arptables -A INPUT -d 172.25.11.100 -j DROP
    arptables -A OUTPUT -d 172.25.11.100 -j mangle --mangle-ip-s 172.25.11.2
    scp /etc/sysconfig/arptables root@172.25.11.3:/etc/sysconfig/arptables 复制sever2火墙策略到server3(不用再次编写)
    在这里插入图片描述
    在这里插入图片描述

3、访问测试
  • curl 172.25.11.100 访问ip100的网页
    设定arptables火墙策略后,访问ip为172.25.11.100的主机时,会先访问调度器server1,通过调度器的设定来访问RS服务器
    在这里插入图片描述
  • arp -an |grep 100 查看主机收到的arp报文对应的mac地址,根据mac地址可确认哪台主机发送的。
    在这里插入图片描述

四、keepalive完善lvs的健康检查

  • lvs无后台检查机制,若RS服务器关闭或者出现故障,安装keepalive并编写配置文件,利用TCP_CHECK来对后端RS服务器进行健康检测

  • 删除前面实验操作写入的pro火墙策略,编写keepalive配置文件时,会写入设定,故在启动此服务时会自动添加虚拟ip和pro规则。
    ip addr del 172.25.11.100 dev eth0 删除虚拟ip地址
    ipvsadm -C 删除lvs虚拟服务器的设定

  • 调度器server1主机上操作
    yum install keepalived.x86_64 -y安装keepalive服务
    vim /etc/keepalived/keepalived.conf 修改keepalive的配置文件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    systemctl start keepalived 启动服务,自动生成ipvsadm策略
    在这里插入图片描述

五、keepalive服务实现高可用

  • keepalive的vrrp虚拟路由协议,可实现高可用,减少冗余
  • 备用调度器主机server4上操作
    基本配置与调度器主机server1相同。
    vim /etc/keepalived/keepalived.conf 修改keepalive的配置文件,修改优先级和主机状态
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值