• 4.2 搭建LVS-DR模式


    搭建LVS-DR-配置LVS节点与ipvsadm

    前期准备

    1. 服务器与ip规划

    LVS-1台

    VIP(虚拟ip): 192.168.1.150

    DIP(转发者IP/内网IP): 192.168.1.151

    2.Nginx-2台(RealServer)

    RIP(真实IP/内网IP):192.168.1.171

    RIP(真实IP/内网IP):192.168.1.172

    2.所有计算机节点关闭网络配置管理器,因为有可能会和网络接口冲突:

    systemctl stop NetworkManager

    systemctl disable NetworkManager

    创建子接口-方式1

    1.进入到网卡配置目录,找到ens33(ens0);

    2.拷贝并且创建子接口:

    cp ifcfg-ens33 ifcfg-ens33:1

    注:`数字1`为别名,可以任取其他数字都行

    3.修改子接口配置:vim ifcfg-ens33:1

    4.配置参考如下:

    BOOTPROTO="static"
    DEVICE="ifcfg-ens33:1"

    ONBOOT="yes"

    IPADDR=192.168.1.150

    NETMASK=255.255.255.0

    注:配置中的 192.168.1.150 就是咱们的vip,是提供给外网用户访问的ip地址,道理和nginx+keepalived那时讲的vip是一样的。

    5.重启网络服务,或者重启linux:

    service network restart

    6.重启成功后,ip addr查看一下,就好发现多了一个ip,也就是虚拟ip(vip)

    创建子接口-方式2(不推荐使用)

    1.创建网络 接口并绑定虚拟ip:

    ifconfig ens33:1 192.168.1.150/24

    配置规则如下:

    总览

    ifconfig 【接口】

    ifconfig 接口 【aftype】 options | address ...

    描述

    ifconfig 用于配置常驻内核的网络接口。它用于在引导成功时设定网络接口。

    地址族

    如果跟在接口名称后的第一个参数是它支持地址的名称。

    选项

    接口 接口名称。通常是一个跟单元号的驱动设备名,例如第一个以太接口 eth0 。

    配置成功后,查看ip会发现新增一个192.168.1.150:

    通过此方式创建的虚拟ip在重启后会自动消失

    安装ipvsadm

    现如今的centos都是集成了LVS,所以ipvs是自带的,相当于苹果手机自带ios,我们只需要安装ipvsadm即可(ipvsadm是管理集群的工具,通过ipvs可以管理集群,查看集群等操作),命令如下:

    yum install ipvsadm

    图中显示目前版本为1.2.1,此外是一个空列表,啥都没。

    注:关于虚拟ip在云上的事儿

    阿里云不支持虚拟IP,需要购买他的负载均衡服务

    腾讯云支持虚拟IP,但是需要额外购买,一台节点最大支持10个虚拟ip

    搭建LVS-DR-为两台RS配置虚拟IP

    1、进入到网卡配置目录,找到lo(本地环回接口,用户构建虚拟网络子接口),拷贝一份新的随后进行修改。

     2、修改内容如下:

    3、重启网络(service network restart)后通过ip addr查看如下,表示OK:

     

    搭建LVS-DR-为两台RS配置arp

    为两台RS配置arp

    1、arp-ignore:ARP相应界别(处理请求)

    • 0:只要本机配置了ip,就能相应请求
    • 1:请求的目标地址到达对应的网络接口才会响应请求

    2、arp-announce:ARP通告行为(返回响应)

    • 0:本机上任何网络解耦都向外通告,所有的网卡都能接受到通告。
    • 1:尽可能避免本网卡与不匹配的目标进行通告。
    • 2:只在本网卡通告。

    配置ARP

    1、打开sysctl.conf

    vim /etc/sysctl.conf

    2、配置所有网卡、默认网卡、一级虚拟网卡的arp响应级别和通告行为,分别对应:all,default,lo

    # configration for lvs

    net.ipv4.conf.all.arp_ignore = 1

    net.ipv4.conf.default.arp_ignore = 1

    net.ipv4.conf.lo.arp_ignore = 1

    net.ipv4.conf.all.arp_announce = 2

    net.ipv4.conf.default.arp_announce = 2

    net.ipv4.conf.lo.arp_announce = 2

    3、刷新配置文件

    sysctl -p

    4、增加一个网关,用于接收数据报文,当有请求到本机后,会交给lo去处理

    route add -host 192.168.1.150 dev lo:1

    5、防止重启失效,在开机自启增加配置

    echo "route add -host 192.168.1.150 dev lo:1" >> /etc/rc.local

    6、第二台RS使用相同步骤,重复1-5。

    搭建LVS-DR-使用ipvsadm配置集群规则

    1、创建LVS节点,用户访问的集群调度者。

    ipvsadm -A -t 192.168.1.150:80 -s rr -p 5

    • -A:添加集群
    • -t:tcp协议
    • ip地址:设定集群的访问ip,也就是LVS的虚拟ip
    • -s:设置负载均衡的算法,rr表示轮询。
    • -p:设置连接持久化的时间

    2、创建2台S真实服务器

    ipvsadm -a -t 192.168.1.150:80 -r 192.168.1.171:80 -g
    ipvsadm -a -t 192.168.1.150:80 -r 192.168.1.172:80 -g

    • -a:添加真实服务器
    • -t:tcp协议
    • -r:真实服务器的ip地址
    • -g:设定DR模式

    3、保存到规则库,否则重启失效。

    ipvsadm -S

    4、检查集群

    • 查看集群列表

    ipvsadm -Ln

    • 查看集群状态

    ipvsadm -Ln --stats

    5、其他命令

        # 重启ipvsadm,重启后需要重新配置
        service ipvsadm restart
        # 查看持久化连接
        ipvsadm -Ln --persistent-conn
        # 查看连接请求过期时间以及请求源ip和目标ip
        ipvsadm -Lnc
        
        # 设置tcp tcpfin udp 的过期时间(一般保持默认)
        ipvsadm --set 1 1 1
        # 查看过期时间
        ipvsadm -Ln --timeout

    6、更详细的帮助文档

    ipvsadm -h
    man ipvsadm

  • 相关阅读:
    Redis 数据迁移篇之redis-migrate-tool工具使用手册
    [Note]时钟门控的时序检查
    UI 设计的未来发展
    (附源码)springboot菠萝大学课室预约分析与设计 毕业设计641656
    qt 自定义可删除的QDateEdit控件
    JavaScript 数据类型及其用法
    【HBZ分享】高并发下如何设计缓存来提升系统性能?
    C 语言函数宏的几种封装方式
    K8S:本质
    C++11(三)可变模板参数、lambda表达式、包装器
  • 原文地址:https://blog.csdn.net/Xx13624558575/article/details/126504429