一.环境准备
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.启动keepalivedsystemctl start keepalived
systemctl enable keepalived
6.测试,查看是否有10.10.10.135这个虚拟ipip 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