lvs的nat模式部署

目录

一.环境准备

LVS+keepalived主机
真实:10.10.10.10
虚拟:10.10.10.135

LVS+keepalived备机
真实:10.10.10.11
虚拟:10.10.10.135

后端web服务器A
真实:10.10.10.60

后端web服务器B
真实:10.10.10.61

二.安装

后端web(A和B操作)

需要A和B均操作如下,在创建测试页面部分需要变动

1.安装httpd服务器
yum install -y httpd
systemctl start httpd
systemctl enable httpd

2.创建测试页面并测试,A和B机器页面要不一样
echo "welcome A" > /var/www/html/index.html
curl http://127.0.0.1

3.编写转发脚本
vim forward.sh

#!/bin/bash

#用于和Lvs连接的网卡
net_card=enp0s8

#Lvs的vip,也就是网关
gate_way=10.10.10.135



#设置IP转发
echo "0" > /proc/sys/net/ipv4/ip_forward

#避免arp广播问题
echo 1 > /proc/sys/net/ipv4/conf/${net_card}/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/${net_card}/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

#设置路由
/sbin/route add -host ${gate_way} dev ${net_card}

4.执行脚本
bash forward.sh

5.检测,可以看到多了一条路由的
rount -n

负载均衡(主和从)

需要主和从均操作如下,在router_id,指定主从,优先级处需要变

1.安装依赖
yum install -y openssl openssl-devel keepalived ipvsadm

2.配置
vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id lb01 #路由id号,不能重复,从需要更改
}

vrrp_instance VI_1 {
	#指定该节点为主节点,备用节点设置为BACKUP
	state MASTER
	#绑定虚拟IP的网络接口
    interface enp0s8

	#VRRP组名,两个节点设置一样,以指明各个节点同属一VRRP组
    virtual_router_id 51

	#主节点的优先级,从节点需要比主节点低
    priority 100

	#组播信息发送间隔,两个节点需一致
    advert_int 1

	#设置验证信息,两个节点需一致
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    
virtual_ipaddress {
        10.10.10.135
    }
}

#虚拟IP服务
virtual_server 10.10.10.135 80 {
    #设定检查间隔
    delay_loop 6

    #指定LVS算法,rr为轮询
    lb_algo rr

    #指定LVS模式,当前NAT
    lb_kind NAT

    nat_mask 255.255.255.0

    #持久连接设置,会话保持时间
    persistence_timeout 50

    #转发协议为TCP
    protocol TCP

    #后端实际TCP服务配置
    real_server 10.10.10.60 80 { #后端web服务A
       weight 1
       HTTP_GET {  #健康检测方式
                url {
                  path /
                  status_code 200 #返回200则ok
                }
                connect_timeout 1 #超时时间
                nb_get_retry 3 #重试次数
                delay_before_retry 2 #多长时间重试
            }
}

  real_server 10.10.10.233 80 { #后端web服务B
     weight 1
     HTTP_GET {  #健康检测方式
                url {
                  path /
                  status_code 200
                }
                connect_timeout 1
                nb_get_retry 3
                delay_before_retry 2
            }
  }
}

3.配置转发脚本
vim forward.sh

#转发
echo "1" >/proc/sys/net/ipv4/ip_forward

#清除ipvsadm表
ipvsadm -C

#提供的服务
/sbin/ipvsadm -A -t 10.10.10.135:80 –p 300

#后端服务器集群 -m是NAT,-g是DR,-i是TUN,-w权重
/sbin/ipvsadm -a -t 10.10.10.135:80 -r 10.10.10.60:80 -m -w 1
/sbin/ipvsadm -a -t 10.10.10.135:80 -r 10.10.10.233:80 -m -w 1

4.启动脚本
bash forward.sh

5.启动keepalived
systemctl start keepalived
systemctl enable keepalived

6.测试,查看是否有10.10.10.135这个虚拟ip
ip addr

测试网页,看是否轮询了
curl http://10.10.10.135
curl http://10.10.10.135

三.使用验证

负载均衡挂掉一个节点,访问正常

1.在负载均衡主上关机
init 0

2.在浏览器测试
curl http://10.10.10.135

web服务挂掉一个节点,访问正常

1.在web服务A上关机
init 0

2.在浏览器测试
curl http://10.10.10.135

上一篇:HA-Keepalived(LVS+Keepalived)解析与部署(二)


下一篇:lvs的多种模式和调度详细讲解