LVS负载均衡群集-Keepalived部署

本文介绍了如何部署LVS+Keepalived实现高可用负载均衡群集。首先,讲解了Keepalived作为健康检查工具的作用和工作原理。接着,详细阐述了在两个节点服务器上配置HTTP服务,并分配虚拟IP的过程。最后,展示了在主、备用负载调度器上配置Keepalived,确保服务的故障切换和高可用性。
摘要由CSDN通过智能技术生成



一、Keeplived简介

专为LVS和HA设计的一款健康检查工具
支持故障自动切换(Failover)
支持节点健康状态检查(Health Checking)

二、Keepalived工作原理

  • Keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题

  • 在一个LVS服务集群中通常有主服(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性

三.部署LVS+Keepalived 高可用群集

1、实验需求:

节点服务器1--------192.168.13.10
节点服务器2--------192.168.13.20
主负载调度器-------192.168.13.30
备负载调度器-------192.168.13.40

2.配置节点服务器1

(192.168.13.10)

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
     内部配置:      DEVICE=lo:0
                             IPADDR=192.168.13.100
                             NETMASK=255.255.255.255
                              ONBOOT=yes

[root@localhost network-scripts]# ifup lo:0     ##开启网卡
[root@localhost network-scripts]# route add -host 192.168.13.100 dev lo:0           ##vip地址需要通过虚网卡进入
##永久配置##
[root@localhost network-scripts]# vim /etc/rc.local
 内部配置添加:
                  route add -host 192.168.13.100 dev lo:0

[root@localhost network-scripts]# chmod +x /etc/rc.d/rc.local           ## 添加执行权限
    
   [root@localhost 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@localhost network-scripts]# sysctl -p          ## 加载
net.ipv4.conf.lo.arp_ignore = 1                 #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2           #系统不使用IP包的源地址来设置ARP
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@localhost network-scripts]# cd /var/www/html/
[root@localhost html]#  ls
[root@localhost html]# echo '<h1>This is the first test web!</h1>' > index.html              
[root@localhost html]# systemctl start httpd


在这里插入图片描述
在这里插入图片描述

节点服务器2

[root@localhost ~]# yum install -y httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-88.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-88.el7.centos,它被软件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-88.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成
.....
,,,,
.....
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
内部:
     DEVICE=lo:0
      IPADDR=192.168.13.100
      NETMASK=255.255.255.255
      ONBOOT=yes



[root@localhost ~]# ifup lo:0
[root@localhost ~]# route add -host 192.168.13.100 dev lo:0
[root@localhost ~]# vim /etc/rc.local
[root@localhost ~]# chmod +x /etc/rc.d/rc.local
[root@localhost ~]# vim /etc/sysctl.conf
[root@localhost ~]# 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
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# echo '<h1>This is the second test web!</h1>' > index.html
[root@localhost html]# systemctl start httpd

主负载调度器

[root@localhost ~]# cd /etc/keepalived
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
###复制配置文件####
[root@localhost keepalived]# vim keepalived.conf
      :set nu  ##打开行号
      smtp_server 127.0.0.1   ## 第10行:邮箱地址改成本地ip
      router_id LVS_01    ### 第12行:区分路由名称  改成01
      ###### 下面4行 全部删掉  ######

      ######  vrrp 热备份实例配置#######  
interface ens33        ## 第17行:第一张网卡名称      
      priority 100 这行的上方添加:nopreempt  ### 非抢占模式
      192.168.58.100   ## 第27行:VIP地址  后面的两行多余ip删掉
       
######### 虚拟服务器 ###########
      192.168.58.100 80               ## 第31行:虚拟IP地址为VIP地址,80端口为http协议
       lb_kind DR                           ## 第34行:LVS工作模式为DR
       persistence_timeout 0        ### 第35行:长连接超时时间,单位秒
       protocol TCP                        ### 第36行:健康检查协议为tcp

       192.168.58.15 80                 #### 第38行:真实节点服务器的ip地址,80号端口
        ##### 下面为健康检查方式:########
        TCP_CHECK {                        #### 第40行 :端口检查的方式
                 connect_port 80         #### 通过tcp协议 检查80号端口
                 connect_timeout 3
                 nb_get_retry 3
                 delay_before_retry 3
                 ##########    后面的不需要一直删到第一个 "}" 为止
         :38,46 co 46                        #### 末行模式  复制另外一台节点服务器配置
                                                                记得将真实节点服务器ip地址改一下
          100 dd                           ###### 在第58行 删除后面不需要的虚拟服务器配置



[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ip addr
### 查看相关配置
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c7:ea:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.13.30/24 brd 192.168.13.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fec7:ea82/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:83:ff:e2 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:83:ff:e2 brd ff:ff:ff:ff:ff:ff


[root@localhost keepalived]# scp keepalived.conf 192.168.13.30:`pwd`        #远程传输文件到备负载调度器
The authenticity of host '192.168.13.30 (192.168.13.30)' can't be established.
ECDSA key fingerprint is SHA256:ka7ipT8mDX2Z2IxR+3inYCB+HuVmU+rIV5UU/HErCbQ.
ECDSA key fingerprint is MD5:8d:27:22:9b:97:78:5a:0a:dd:c8:2e:66:44:9a:64:57.

Are you sure you want to continue connecting (yes/no)? YES
Warning: Permanently added '192.168.13.30' (ECDSA) to the list of known hosts.

root@192.168.13.30's password: 
keepalived.conf                          100% 1281     3.3MB/s   00:00    

[root@localhost keepalived]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost keepalived]# systemctl start ipvsadm

[root@localhost keepalived]# systemctl restart keepalived

[root@localhost keepalived]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn



在这里插入图片描述
在这里插入图片描述

负载调度器

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# vim keepalived.conf
      router_id LVS_02
      state BACKUP
      priority 90


[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost keepalived]# systemctl start ipvsadm
[root@localhost keepalived]# systemctl restart keepalived
[root@localhost keepalived]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值