04 高并发负载均衡:基于keepalived的LVS高可用搭建

理论部分


Nginx与LVS对比

nginx是基于反向代理的负载均衡,是七层负载均衡。客户端和Nginx是要进行3次握手、四次分手的。
在这里插入图片描述
LVS是基于四层(也可以说三层半)的负载均衡。没有三次握手四次分手,只是在四次偷窥数据包中的IP地址、MAC地址、端口号等,然后就把数据包转发给了真实服务器。所以性能比七层负载均衡的Nginx要强很多。
在这里插入图片描述

keepalived功能推导

在这里插入图片描述
在这里插入图片描述

实验手册

在这里插入图片描述

实操部分


node01清空LVS

# 查看偷窥列表,经过了一段时间,偷窥列表已经清空了
ipvsadm -lnc

# 查看ipvsadm列表
ipvsadm -ln

# 清空ipvsadm列表
ipvsadm -C

在这里插入图片描述
访问 http://192.168.174.100
在这里插入图片描述
清空VIP

# 查看网卡接口
ifconfig

# 停掉网卡
ifconfig ens33:3 down

在这里插入图片描述

node01安装keepalived(主)

node01安装keepalived

# 安装keepalived
yum install keepalived -y

在这里插入图片描述
node01配置keepalived

# 进入配置文件目录
cd /etc/keepalived

# 查看目录
ls

# 拷贝配置文件
cp keepalived.conf keepalived.conf.bak

# 打开配置文件
vim keepalived.conf

# 修改配置文件
vrrp_instance VI_1 {
    state MASTER
    interface eth0
改成
vrrp_instance VI_1 {
    state MASTER
    interface ens33		# 改这行,因为我的物理网卡是ens33

# 在ens33物理网卡接口上,配置子接口ens33:3
# 类比命令 ifconfig ens33:3 192.168.174.100/24 
virtual_ipaddress {
   192.168.200.16
   192.168.200.17
   192.168.200.18
}
改成
virtual_ipaddress {
    192.168.174.100/24 dev ens33 label ens33:3
}

# 配置管理入口,ens33物理网卡上配置的子接口ens33:3,VIP
# 类比命令 ipvsadm -A -t 192.168.174.100:80 -s rr		
virtual_server 192.168.200.100 443 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
改成
virtual_server 192.168.174.100 80 {		# 这行改IP、端口
    delay_loop 6
    lb_algo rr
    lb_kind DR		# 这行改负载均衡模式,NAT模式改成DR模式
    nat_mask 255.255.255.0		# 这行加上掩码配置
    persistence_timeout 0		# 这行把负载均衡路线存留时间50改成0
    protocol TCP

# 配置管理出口 real server node02
# 类比命令 ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.12 -g -w 1		
# 类比命令 ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.13 -g -w 1		
real_server 192.168.201.100 443 {
    weight 1
    SSL_GET {
        url {
          path /
          digest ff20ad2481f97b1754ef3e12ecd3a9cc
        }
        url {
          path /mrtg/
          digest 9b3a0c85a887a256d6939da88aabd8cd
        }
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
    }
}
改成
real_server 192.168.174.12 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.174.13 80 {
    weight 1
    HTTP_GET {
        url {
          path /
          status_code 200
        }
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
node01启动keepalived

# 启动
service keepalived start

访问 http://192.168.174.100,F5刷新几次页面
在这里插入图片描述
在这里插入图片描述
查看偷窥列表
在这里插入图片描述

node04安装keepalived(备)

node04安装keepalived、ipvsadm

# 安装keepalived、ipvsadm
yum install keepalived ipvsadm -y

在这里插入图片描述
在这里插入图片描述
node04配置keepalived

# 进入配置文件目录
cd /etc/keepalived

# 查看目录
ls

# 删除配置文件
rm -rf keepalived.conf

# 拷贝配置文件(从node01远程拷贝keepalived.conf到node04的相同目录下)
scp keepalived.conf root@192.168.174.14:`pwd`

# 查看目录,keepalived.conf在目录下
ls

# 查看配置文件
cat keepalived.conf
# virtual_ipaddress {
#    192.168.174.100/24 dev ens33 label ens33:3
# }
# 是我们在node01中配置的,说明远程拷贝成功

# 修改配置文件
# node04作为备机,需要修改配置文件MASTER-->BACKUP,权重调低100-->50
/*
vrrp_instance VI_1 {
    state BACKUP	# 备机,改成BACKUP
    interface ens33
    virtual_router_id 51
    priority 50		# 备机,权重调低
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.174.100/24 dev ens33 label ens33:3
    }
}
*/

# 启动
service keepalived start

删除配置文件
在这里插入图片描述
拷贝配置文件(从node01远程拷贝keepalived.conf到node04的相同目录下)
在这里插入图片描述
查看配置文件
在这里插入图片描述
修改配置文件
在这里插入图片描述
启动
在这里插入图片描述
访问 http://192.168.174.100,一直转圈圈,过一会,无法访问网站
在这里插入图片描述
在这里插入图片描述
备机下线,ens33:3没有了
在这里插入图片描述
访问 http://192.168.174.100,正常了
在这里插入图片描述
在这里插入图片描述
备机上线
在这里插入图片描述
访问 http://192.168.174.100,还是失败,同上
主机下线
在这里插入图片描述
在这里插入图片描述
访问 http://192.168.174.100
在这里插入图片描述
备机没起作用,备机下线,主机上线
在这里插入图片描述
在这里插入图片描述

上面备机不起作用的问题

简单描述:备机启动,不应该出现VIP却出现了,反复试了几次,只要启动备机的keepalived服务,VIP网卡就会出现。然后,两个相同的VIP暴露在外网, http://192.168.174.100就访问不了了,一直转圈圈,过一会显示“无法访问次网站”。
问题出在哪里?一定是备机配置有问题,但是配置是从node01远程拷贝过来,只改了MASTER --> BACKUP,和权重100–>50,其它都没改。
所以问题具体出在哪里了呢?
答:// TODO ~ 等我搞清楚了再继续写吧

补充知识点


安装使用man

安装man

命令:yum install man -y

使用man

# 查看配置文件使用第5类
man 5 keepalived.conf

# 查找virtual_ipaddress配置
# 按 Esc,再按 / 输入想要查找的内容,如:virtual_ipaddress

在这里插入图片描述


上一篇《03 高并发负载均衡:LVS的DR模型试验搭建》
下一篇《05 Redis的String类型&bitmap》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值