lvs DR模式+基于五台服务器部署keepalived + lvs DR模式架构(前端带路由)负载均衡的高可用集群

lvs DR模式+基于五台服务器部署keepalived + lvs DR模式架构(前端带路由)负载均衡的高可用集群

DR模式一:

客户端:172.20.26.167

LVS服务器:172.20.26.198

后端服务器:172.20.26.218

后端服务器:172.20.26.210

两台后端服务器

yum install nginx tcpdump -y

echo "this is 26.218 page" > /usr/share/nginx/html/index.html

echo "this is 26.210 page" > /usr/share/nginx/html/index.html

启动nginx服务

在218、210服务器配置VIP:

cd /etc/sysconfig/network-scripts

cat > ifcfg-lo:1 <<EOF

DEVICE=lo:1

IPADDR=172.20.26.200

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback

EOF

重启网络服务

systemctl restart network

配置arp抑制:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

在172.20.26.198LVS服务器上配置调度器VIP:

cd /etc/sysconfig/network-scripts

cat > ifcfg-ens34 <<EOF

TYPE=ethernet

BOOTPROTO=none

DEVICE=ens34

ONBOOT=yes

IPADDR=172.20.26.200

PREFIX=24

GATEWAY=172.20.26.254

EOF

重启网络服务

systemctl restart network

在172.20.26.198LVS服务器上安装ipvsadm 

yum install ipvsadm -y

# 配置LVS:

#添加集群服务,调度方式如果不指定,默认是wlc

ipvsadm -A -t 172.20.26.200:80

# 添加后端真实服务器,工作模式如果不指定,默认是DR模式,-m为NAT模式,如需指定使用-g

ipvsadm -a -t 172.20.26.200:80 -r 172.20.26.218

ipvsadm -a -t 172.20.26.200:80 -r 172.20.26.210

#查看lvs配置

ipvsadm –Ln

### 访问测试:

[root@node2 ~]# curl 172.20.26.200

this is 26.218 page

[root@node2 ~]# curl 192.168.75.200

this is 26.210 page

DR模式二

基于六台服务器部署keepalived + lvs DR模式架构(前端带路由)负载均衡的高可用集群;

修改网络模式前将所需软件包安装完成

客户端机器,网卡模式为桥接模式

路由器上开启数据包的转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

两台后端服务器:

yum install nginx -y   安装nginx

yum install tcpdump -y   安装抓包工具

echo "this is RS1.152.129 pages" > /usr/share/nginx/html/index.html

echo "this is RS2.152.128 pages" > /usr/share/nginx/html/index.html

两台LVS服务器A、B:

yum install ipvsadm -y

yum install keepalived -y

echo 1 > /proc/sys/net/ipv4/ip_forward

实验环境各台服务器网络配置:

1、CIP服务器的网关设置为R外IP(172.20.26.6)

2、充当路由器的服务器,R外的网关设置为物理机的网关地址172.20.26.254

充当路由器的服务器,R内的网关设置为仅主机模式的默认网关地址192.168.152.2

3、LVS服务器A的VIP网关设置为路由器R内的IP地址

VIP1: 192.168.152.200

cat > /etc/sysconfig/network-scripts/ifcfg-ens33:1 <<EOF

TYPE="Ethernet"

BOOTPROTO="none"

DEVICE="ens33:1"

ONBOOT="yes"

GATEWAY=192.168.152.131

IPADDR=192.168.152.200

PREFIX=24

EOF

LVS服务器A的DIP网关设置为路由器R内的IP地址

DIP1:192.168.152.130

cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF

TYPE="Ethernet"

BOOTPROTO="none"

DEVICE="ens33"

ONBOOT="yes"

GATEWAY=192.168.152.131

IPADDR=192.168.152.130

PREFIX=24

EOF

4、LVS服务器B的VIP网关设置为路由器R内的IP地址

VIP2: 192.168.152.201

cat > /etc/sysconfig/network-scripts/ifcfg-ens33:1 <<EOF

TYPE="Ethernet"

BOOTPROTO="none"

DEVICE="ens33:1"

ONBOOT="yes"

GATEWAY=192.168.152.131

IPADDR=192.168.152.201

PREFIX=24

EOF

LVS服务器B的DIP网关设置为路由器R内的IP地址

DIP2:192.168.152.132

cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF

TYPE="Ethernet"

BOOTPROTO="none"

DEVICE="ens33"

ONBOOT="yes"

GATEWAY=192.168.152.131

IPADDR=192.168.152.132

PREFIX=24

EOF

5、两台后端真实服务器的网关设置为路由器R内的IP地址

配置后端的VIP:

cat > /etc/sysconfig/network-scripts/ifcfg-lo:1 <<EOF

DEVICE=lo:1

IPADDR=192.168.152.200

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback

EOF

抑制arp:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置后端的VIP:

cat > /etc/sysconfig/network-scripts/ifcfg-lo:1 <<EOF

DEVICE=lo:1

IPADDR=192.168.152.200

NETMASK=255.255.255.255

ONBOOT=yes

NAME=loopback

EOF

抑制arp:

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

各台服务器均能相互ping通(各台服务器selinux关闭、firewalld关闭,开机启动禁用)。

LVS服务器A、B上配置ipvsadm

配置LVS:

ipvsadm -A -t 192.168.152.200:80 -s rr

ipvsadm -a -t 192.168.152.200:80 -r 192.168.152.129

ipvsadm -a -t 192.168.152.200:80 -r 192.168.152.128

开启数据包的转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

在客户端上访问后端资源

Curl 192.168.152.200  因为设置为rr 轮询方式,各自轮询访问后端服务器

两台LVS服务器上配置keepalived高可用

MASTER:

! Configuration File for keepalived

global_defs {

   router_id LVS_MASTER

}

vrrp_instance VI_1 {

    state MASTER

    interface ens33

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.152.200

    }

}

virtual_server 192.168.152.200 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    persistence_timeout 50

    protocol TCP

    sorry_server 192.168.152.200 80

real_server 192.168.152.129 80 {

        weight 1

        HTTP_GET {

          url {

            path /

            status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

real_server 192.168.152.128 80 {

        weight 1

        HTTP_GET {

          url {

            path /

            status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

BACKUP:

! Configuration File for keepalived

global_defs {

   router_id LVS_BACKUP

}

vrrp_instance VI_1 {

    state BACKUP

    interface ens33

    virtual_router_id 51

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.152.200

    }

}

virtual_server 192.168.152.200 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    persistence_timeout 50

    protocol TCP

    sorry_server 192.168.152.200 80

real_server 192.168.152.129 80 {

        weight 1

        HTTP_GET {

          url {

            path /

            status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

real_server 192.168.152.128 80 {

        weight 1

        HTTP_GET {

          url {

            path /

            status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 05:50:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 05:50:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 05:50:07       82 阅读
  4. Python语言-面向对象

    2024-02-19 05:50:07       91 阅读

热门阅读

  1. 关于怎么监督机器学习训练的进度

    2024-02-19 05:50:07       53 阅读
  2. 学习数据接构和算法的第10天

    2024-02-19 05:50:07       52 阅读
  3. Swift 指北

    2024-02-19 05:50:07       51 阅读
  4. DP进阶之最长递增子序列

    2024-02-19 05:50:07       62 阅读
  5. 【npm】npm镜像源及命令

    2024-02-19 05:50:07       50 阅读
  6. opencv进行人脸识别

    2024-02-19 05:50:07       48 阅读
  7. 企业面临的网络安全风险及应对策略

    2024-02-19 05:50:07       44 阅读
  8. 洛谷 P8630 [蓝桥杯 2015 国 B] 密文搜索

    2024-02-19 05:50:07       43 阅读
  9. npm详解:掌握package.json配置

    2024-02-19 05:50:07       50 阅读
  10. js-后端返回参数前端动态切换样式

    2024-02-19 05:50:07       43 阅读
  11. Python函数——函数介绍

    2024-02-19 05:50:07       55 阅读
  12. 不同编程网站应当注意的点

    2024-02-19 05:50:07       52 阅读