LVS+Keepalived高可用群集配置案例

以下是一个 LVS+Keepalived 高可用群集配置案例:

1、环境准备

  • LVS 主调度器(lvs1):IP 地址为 192.168.8.101,心跳 IP 为 192.168.4.101
  • LVS 备调度器(lvs2):IP 地址为 192.168.8.102,心跳 IP 为 192.168.4.102
  • 虚拟 IP(vip):192.168.8.100
  • Web 服务器 1(nginx1):IP 地址为 192.168.8.103
  • Web 服务器 2(nginx2):IP 地址为 192.168.8.104
  • 客户端:IP 地址为 192.168.8.1

2、配置步骤

2.1、为lvs1和lvs2配置ip地址

lvs1:配置IP地址

复制代码
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.8.101/24
nmcli connection modify ens36 ipv4.method manual ipv4.addresses 192.168.4.101/24
nmcli connection up ens33
nmcli connection up ens36

lvs2:配置IP地址

复制代码
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.8.102/24
nmcli connection modify ens36 ipv4.method manual ipv4.addresses 192.168.4.102/24
nmcli connection up ens33
nmcli connection up ens36

2.2、为lvs1和lvs2安装keepalived和ipvsadm并修改配置文件

  • 安装:

    yum install -y keepalived ipvsadm

Ivs1的 keepalived 配置文件修改

复制代码
!configuration file for keepalived
global_defs{
    router_id cluster1
}
vrrp_instance web{
    state master
    interface ens33
    virtual_router_id 51
    priority 255
    advert_int 1
    authentication{
        auth_type pass
        auth_pass 1111
    }
    virtual_ipaddress{
        192.168.8.100/24
    }
}
virtual_server 192.168.8.100 80{
    delay_loop 6
    lb_algo rr
    lb_kind dr
    persistence_timeout 50
    protocol tcp
    real_server 192.168.8.103 80{
        weight 1
        tcp_check{
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.8.104 80{
        weight 2
        tcp_check{
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

Ivs2的 keepalived 配置文件修改

bash 复制代码
! configuration file for keepalived
global_defs{
    router_id cluster2
}
vrrp_instance web{
    state backup
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication{
        auth_type pass
        auth_pass 1111
    }
    virtual_ipaddress{
        192.168.8.100/24
    }
}
virtual_server 192.168.8.100 80{
    delay_loop 6
    lb_algo rr
    lb_kind dr
    persistence_timeout 50
    protocol tcp
    real_server 192.168.8.103 80{
        weight 1
        tcp_check{
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.8.104 80{
        weight 2
        tcp_check{
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

重启服务:在两台lvs上输入

bash 复制代码
systemctl restart keepalived

3、为后端服务器安装 httpd

web1

bash 复制代码
安装:yum install -y httpd
写入信息:echo "hello,192.168.8.103" > /usr/share/nginx/html/index.html
启动服务:systemctl enable httpd.service --now

web2

bash 复制代码
安装:yum install -y httpd
写入信息:echo "hello,192.168.8.104" > /usr/share/nginx/html/index.html
启动服务:systemctl enable httpd.service --now

4、为后端服务器配置IP地址

web1

bash 复制代码
nmcli con mod ens33 ipv4.address 192.168.8.103/24 ipv4.gateway 192.168.8.2
nmcli con up ens33
增加虚拟接口并配置 vip:nmcli connection add type dummy ifname dummy2 ipv4.method manual ipv4.addresses 192.168.8.100/32
修改内核 arp 配置:cat >>/etc/sysctl.conf<< eof net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2 eof
刷新配置:sysctl -p

web2

bash 复制代码
nmcli con mod ens33 ipv4.address 192.168.8.104/24 ipv4.gateway 192.168.8.2
nmcli con up ens33
增加虚拟接口并配置 vip:nmcli connection add type dummy ifname dummy2 ipv4.method manual ipv4.addresses 192.168.8.100/32
修改内核 arp 配置:cat >>/etc/sysctl.conf<< eof net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2 eof
刷新配置:sysctl -p
相关推荐
沫璃染墨7 小时前
从零入门计算机网络系列(十五):TCP可靠传输机制详解——从序号与确认应答到乱序处理
服务器·网络·c++·tcp/ip·tcp
景煜拾年8 小时前
InnoAI SQL 助手
运维·数据库·笔记·sql
无人生还别怕8 小时前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
分布式存储与RustFS9 小时前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
zhengfei6119 小时前
CVE-2026-98432:Linux 内核 TCP 释放后重用漏洞,CVSS 9.8 但补丁覆盖极不均衡
linux·运维·tcp/ip
逐流人9 小时前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
xyzzklk9 小时前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
叼烟扛炮11 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
Android系统攻城狮18 小时前
Linux FFmpeg深度解析之avcodec_align_dimensions调用流程与实战(二十九)
服务器·linux音视频·音视频进阶·ffmpeg音视频
飞飞传输19 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全