LVS+Keepalived高可用群集

一、Keepalived简介

Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。

所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

二、keepalived的三个功能

  • 管理LVS负载均衡软件
  • 实现LVS集群节点的健康检查
  • 作为系统网络服务的高可用性(failover)

三、Keepalived的工作原理

Keepalived高可用是通过 VRRP 进行通信的, VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。

在 Keepalived 服务之间,只有作为主的服务器会一直发送 VRRP 广播包,告诉备它还活着,此时备不会枪占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快可以小于1秒。

四、Keepalived配置实例

1、初始配置

复制代码
##关闭防火墙
[root@chicken ~]# systemctl disable firewalld --now
##关闭Selinux
[root@chicken ~]# setenforce 0

2、两台调度节点配置并安装

复制代码
[root@chicken ~]# yum -y install ipvsadm keepalived

3、修改配置文件

复制代码
[root@chicken ~]# vim /etc/keepalived/keepalived.conf ##配置文件路径
Node1 配置内容
vrrp_instance VI_1 {
    state MASTER    角色 MASTER BACKUP
    interface eth0  本地网卡 ens32
    virtual_router_id 51  VRRP组号
    priority 100    优先级
    advert_int 1    VRRP传递时间 1s
    authentication {    VRRP认证
        auth_type PASS  类型密码
        auth_pass 1111  密码
    }
Node2 配置内容
vrrp_instance VI_1 {
    state BACKUP    角色 MASTER BACKUP
    interface eth0  本地网卡 ens32
    virtual_router_id 51  VRRP组号
    priority 90    优先级
    advert_int 1    VRRP传递时间 1s
    authentication {    VRRP认证
        auth_type PASS  类型密码
        auth_pass 1111  密码
    }
    virtual_ipaddress {  虚拟IP,VIP,漂移地址
        192.168.160.200
    }
}
##重启服务
[root@chicken ~]# systemctl restart keepalived.service 

验证虚拟IP交换

node1和node2查看虚拟IP

node1关闭keepalived服务

复制代码
[root@chicken ~]# systemctl stop keepalived.service 

查看node2虚拟IP

WEB节点配置服务及站点

复制代码
[root@chicken network-scripts]# yum -y install httpd
##在web1服务上配置
[root@chicken network-scripts]# echo "<h1>web1.aaaaaaaa</h1>" > /var/www/html/index.html
##在web2服务上配置
[root@chicken network-scripts]# echo "<h1>web2.bbbbbbbb</h1>" > /var/www/html/index.html

关联后端web节点,并配置节点切换策略

复制代码
[root@chicken ~]# vim /etc/keepalived/keepalived.conf
virtual_server 192.168.200.100 80 {
    delay_loop 6
    lb_algo rr  轮询方式  
    lb_kind NAT LVS模式 NAT DR TUN
    persistence_timeout 50   超时时间50s
    protocol TCP 协议TCP
    
    节点服务器1             
    real_server 192.168.160.53 80 {
        weight 1  轮询权重
          CHECK {  开启检测
            connect_port 80  链接端口
            connect_timeout 3 链接超时3s
            nb_get_retry 3    重试次数
            delay_before_retry 3 重试间隔时间3s
        }
    }
    节点服务器2
    real_server 192.168.160.54 80 {
        weight 1
          CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    } 
}
##重启服务
[root@chicken ~]# systemctl restart keepalived.service 

LVS调度节点配置

复制代码
[root@chicken ~]# ipvsadm > /etc/sysconfig/ipvsadm
[root@chicken ~]# ipvsadm -a -t 192.168.223.100:80 -r 192.168.223.125:80 -g -w 1
[root@chicken ~]# ipvsadm -a -t 192.168.223.100:80 -r 192.168.223.126:80 -g -w 1
[root@chicken ~]# systemctl restart ipvsadm.service 
[root@chicken ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.223.100:80 rr
  -> 192.168.223.125:80           Route   1      0          0         
  -> 192.168.223.126:80           Route   1      0          0   

web节点配置

复制代码
[root@chicken ~]# cd /etc/sysconfig/network-scripts/
[root@chicken network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@chicken network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.223.100
NETMASK=255.255.255.255
ONBOOT=yes
NAME=lo:0
##重启network服务
[root@chicken network-scripts]# systemctl restart network

验证WEB节点切换测试

访问WEB1

访问WEB2

访问虚拟IP

相关推荐
rain bye bye2 天前
calibre LVS run不起来跑不通
lvs
rain bye bye2 天前
calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
服务器·数据库·lvs
2301_787328495 天前
25.负载均衡-Nginx、HAProxy、LVS 全解析
nginx·负载均衡·lvs
小任今晚几点睡13 天前
LVS深度解析:从原理到实战的负载均衡完全指南
负载均衡·lvs
Yyyy48221 天前
LVS TUN隧道模式
运维·网络·lvs
IT成长日记22 天前
【LVS入门宝典】LVS调度算法轮询(RR)深度解析:从原理到实战的公平调度之道
算法·lvs·rr·轮询调度算法
chen_note22 天前
LVS集群
nginx·lvs·haproxy·ipvsadm·lvs四种模式
Yyyy48222 天前
LVS三种模式及原理
服务器·php·lvs
Yyyy48222 天前
LVS、Nginx、HAProxy 的区别
运维·nginx·lvs
IT成长日记23 天前
【LVS入门宝典】LVS核心原理与实战:Real Server(后端服务器)高可用配置指南
linux·运维·服务器·负载均衡·lvs