2. keepalived结合LVS配合使用


在这里插入图片描述

1、后端nfs存储提供项目文件

2、后端nfs上集中安装MySQL,共用数据库

3、业务服务器通过LNMP正常部署wordpress博客,客户端通过DNS解析可正常访问

4、所有业务服务器上修改arp参数、配置VIP

[root@web01 ~]# vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1

[root@web01 ~]# sysctl -p
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
[root@web01 ~]# ip addr add dev lo 192.168.140.100/32
[root@web01 ~]# ip addr show lo
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
    inet 192.168.140.100/32 scope global lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

5、配置keepalived实现LVS高可用

5.1 keepalived结合LVS的作用

1、自动生成负载均衡规则(虚拟服务、后端real server)
2、实现lvs负载均衡器的高可用
3、对后端业务服务器有健康状态检查功能

5.2 在负载均衡器上安装keepalived

[root@master_lvs ~]# yum install -y keepalived ipvsadm 

5.3 编辑keepalived配置文件

主调度器的配置

[root@master_lvs ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id master_lvs
}

vrrp_instance blog {             // keepalived虚拟组名
    state MASTER								// 状态
    interface ens33							// 在哪块网卡配置VIP
    virtual_router_id 51			  // 虚拟组ID
    priority 100								// 优先级
    advert_int 1								// 心跳间隔,单位秒
    authentication {
        auth_type PASS
        auth_pass redhat
    }
    virtual_ipaddress {
        192.168.140.100
    }
}

virtual_server 192.168.140.100 80 { 
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 300
    protocol TCP

    real_server 192.168.140.12 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.140.13 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

从调度器的配置

[root@slave_lvs ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id slave_lvs
}

vrrp_instance blog {
    state BACKUP							// BACKUP代表从状态
    interface ens33
    virtual_router_id 51
    priority 50							// 低优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass redhat
    }
    virtual_ipaddress {
        192.168.140.100
    }
}

virtual_server 192.168.140.100 80 { 
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 300
    protocol TCP

    real_server 192.168.140.12 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.140.13 80 {
        weight 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

5.4 启动keepalived服务,查看验证

[root@master_lvs ~]# 
[root@master_lvs ~]# systemctl enable --now keepalived
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.
[root@master_lvs ~]# 

[root@slave_lvs ~]# systemctl enable --now keepalived
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.
[root@slave_lvs ~]# 

分别在主、备调度上查看LVS负载均衡规则

[root@master_lvs ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.140.100:80 rr persistent 300
  -> 192.168.140.12:80            Route   1      0          0         
  -> 192.168.140.13:80            Route   1      0          0      
[root@slave_lvs ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.140.100:80 rr persistent 300
  -> 192.168.140.12:80            Route   1      0          0         
  -> 192.168.140.13:80            Route   1      0          0   

正常情况下,只有主调度上会出现VIP,客户端所有的流量从主经过

[root@master_lvs ~]# ip addr show 
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:cc:6b:2f brd ff:ff:ff:ff:ff:ff
    inet 192.168.140.10/24 brd 192.168.140.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.140.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fecc:6b2f/64 scope link 
       valid_lft forever preferred_lft forever

5.5 测试通过VIP访问业务

修改解析

C:\Users\admin>ping blog.linux.com

正在 Ping blog.linux.com [192.168.140.100] 具有 32 字节的数据:
来自 192.168.140.100 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.140.100 的回复: 字节=32 时间<1ms TTL=64

在这里插入图片描述将主调度停掉,在从调度上查看VIP

[root@slave_lvs ~]# ip a
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:29:e5:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.140.11/24 brd 192.168.140.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.140.100/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe29:e543/64 scope link 
       valid_lft forever preferred_lft forever

相关推荐

  1. LVS+Keepalived集群

    2024-06-06 12:38:07       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 12:38:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 12:38:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 12:38:07       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 12:38:07       20 阅读

热门阅读

  1. 第十三届蓝桥杯B组c++国赛

    2024-06-06 12:38:07       7 阅读
  2. SpringBoot如何缓存方法返回值?

    2024-06-06 12:38:07       7 阅读
  3. C++面试经验分享

    2024-06-06 12:38:07       5 阅读
  4. 使用Python进行数据分析的基本步骤

    2024-06-06 12:38:07       7 阅读
  5. transformer中的ffn

    2024-06-06 12:38:07       8 阅读
  6. 数据科学实战:掌握核心数据提取技巧与工具

    2024-06-06 12:38:07       7 阅读
  7. PySpark 小白教程 (二) PySpark SQL 简介

    2024-06-06 12:38:07       8 阅读
  8. MFC设置窗口在Z轴上的位置

    2024-06-06 12:38:07       9 阅读
  9. uni-app(优医咨询)项目实战 - 第7天

    2024-06-06 12:38:07       8 阅读