LVS+Keepalived群集

Keepalive案例分析

  • 企业应用中,单台服务器承担应用存在单点故障的危险
  • 单点故障一旦发生,企业服务将发生中断,造成极大的危害

Keepalived工具介绍

  • 专为LVS和HA设计的一款健康检查工具
    • 支持故障自动切换(Failover)
    • 支持节点健康状态检查(Health Checking)
    • 官方网站:http://www/keepalived.org/
Keepalived实现原理刨析

Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能

Keepalived案例讲解

Keepalived可实现多机热备,每个热备组可有多台服务器

  • 双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
  • 实现基于Web服务的双机热备
    • 漂移地址:192.168.10.72
    • 主、备服务器:192.168.10.73、192.168.10.74
  • 提供的应用服务:Web

Keepalived概述及安装

keepalived热备份方式

|-----------|-------------------|--------|
| CentOS7.9 | 192.168.10.101/24 | web服务器 |
| CentOS7.9 | 192.168.10.102/24 | web服务器 |

keepaliveda安装与服务控制,同步101,102主机,关闭防火墙,安装应用软件
复制代码
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install keepalived ipvsadm
使用keepallived实现双机热备

主服务器的配置,同步101、102配置,配置完成后,删除多余的内容,修改102配置文件的参数

复制代码
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# ls
[root@localhost keepalived]# cp keepalived.conf keepalived.bak
[root@localhost keepalived]# vim keepalived.conf
101
router_id LVS_01
#vrrp_strict
interface ens33
virtual_ipaddress {
        192.168.10.172
    }
删除以下多的行,123行,
102
router_id LVS_02
#vrrp_strict
interface ens33
 priority 90
                  #修改优先级
 state BACKUP                 #修改角色
 virtual_ipaddress {
        192.168.10.172
    }
修改成为保存退出,重启101、102主机的keepalived的服务
复制代码
[root@localhost keepalived]# systemctl start keepalived
如果101被挂起,IP地址会漂移到102上,101重新运行起来,IP地址不会回到101上还是在102上面
复制代码
101主机没挂起前
[root@localhost keepalived]# ifconfig 
[root@localhost keepalived]# ip a
 inet 192.168.10.172/32 scope global ens33
       valid_lft forever preferred_lft forever
102主机
101主机挂起后IP地址漂移到102主机上,101主机重写启动IP地址漂移不回去
inet 192.168.10.172/32 scope global ens33
       valid_lft forever preferred_lft forever
来到101、102主机重启keepalived的服务
复制代码
101
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
 #vrrp_strict             #注释该节点
[root@localhost ~]# systemctl restart keepalived
102
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
 #vrrp_strict             #注释该节点
[root@localhost ~]# systemctl restart keepalived
来到103主机测试,如果101主机被挂起,访问得到的内容就是102主机的内容
复制代码
[root@localhost ~]# ping 192.168.10.172
[root@localhost ~]# curl 192.168.10.172
web01
[root@localhost ~]# curl 192.168.10.172
web02

配置主调度器

|-----------|-------------------|--------|
| CentOS7.9 | 192.168.10.105/24 | 客户端 |
| CentOS7.9 | 192.168.10.101/24 | 主调度器 |
| CentOS7.9 | 192.168.10.102/24 | 从调度器 |
| CentOS7.9 | 192.168.10.103/24 | web服务器 |
| CentOS7.9 | 192.168.10.104/24 | web服务器 |

主服务器keepalived的安装,连接同步101、102、103、104

关闭防火墙、停止运行NetworkManager服务

复制代码
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop NetworkManager
同步连接101、102会话
复制代码
[root@localhost ~]# yum -y install keepalived ipvsadm
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.bak

主从服务器keepalived的配置

复制代码
[root@localhost keepalived]# vim keepalived.conf
101
router_id LVS_01
#vrrp_strict
interface ens33
virtual_ipaddress {
        192.168.10.172           #修改虚拟IP地址
    }
virtual_server 192.168.10.172 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.10.103 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.10.104 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

}
删除以下剩下的内容


直接复制101编辑好的内容
102
virtual_server 192.168.10.172 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.10.103 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.10.104 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

}
主服务器内核参数配置
复制代码
[root@localhost keepalived]# vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects =0
net.ipv4.conf.default.send_redirects= 0
net.ipv4.conf.ens33.send_redirects= 0
[root@localhost keepalived]# sysctl -p
在101、102上面分别操作服务器池配置
复制代码
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
相关推荐
再学一丢丢2 天前
Keepalived+LVS+nginx高可用架构
nginx·架构·lvs
xxc_my3 天前
LVS的三种工作模式简述
服务器·网络·lvs
Kendra9194 天前
Keepalive+LVS+Nginx+NFS高可用架构
nginx·架构·lvs
棕生4 天前
架构师面试(二十三):负载均衡
nginx·负载均衡·lvs·架构师面试·rpc连接池·vip+keepalive
RememberLey5 天前
lvs-net+nfs的配置
开发语言·php·lvs
重启就好6 天前
【LVS】负载均衡群集部署(DR模式)
服务器·负载均衡·lvs
Z字小熊饼干爱吃保安6 天前
使用LVS的 NAT 模式实现 3 台RS的轮询访问
运维·服务器·lvs
柳如烟@6 天前
LVS-NAT 负载均衡与共享存储配置
linux·负载均衡·lvs
m0_745364246 天前
LVS-DR模式配置脚本
linux·运维·服务器·github·lvs
大橘7 天前
centos8上实现lvs集群负载均衡nat模式
linux·nginx·负载均衡·lvs