LVS-DR直接运用路由技术实现虚拟服务器,适用于当前云服务器的市场环境
keepalived高可用集群实现监控各服务器节点情况,带健康检查
环境准备:
VIP:192.168.4.80
主机名 | 网络配置 |
---|---|
proxy1 | eth0:192.168.4.5 |
proxy2 | eth0:192.168.4.6 |
web1 | eth0:192.168.4.100 |
web2 | eth0:192.168.4.200 |
web服务器
web1,web2安装httpd,做一个简单的网页用来测试
web1 -->
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "web1" > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd
web -->
[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "web2" > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd
为web1,web2配置VIP
[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 ~]# cp ifcfg-lo{,:0}
[root@web1 ~]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.4.15 //IP地址
NETMASK=255.255.255.255 //子网掩码
NETWORK=192.168.4.15 //网络地址
BROADCAST=192.168.4.15 //广播地址
ONBOOT=yes //是否激活网卡
NAME=lo:0
[root@web1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1 //忽略广播
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2 //不想外宣告自身回环
net.ipv4.conf.all.arp_announce = 2
[root@web1 ~]#sysctl -p
https://www.cnblogs.com/chia/p/7799071.html
web1,web2重启服务,关闭防火墙,关闭selinux策略 用来测试
[root@web1 ~]# systemctl stop NetworkManager //防止和network冲突
[root@web1 ~]# systemctl disable NetworkManager
[root@web1 ~]# systemctl restart network
[root@web1 ~]# ifconfig
[root@web1 ~]# systemctl stop firewalld
[root@web1 ~]# setenforce 0
LVS调度服务器
proxy1,proxy2安装keepalived,ipvsadm(查看LVS规则表)
proxy1,2步骤相同
[root@proxy1 ~]# yum install -y keepalived
[root@proxy1 ~]# systemctl enable keepalived
[root@proxy1 ~]# yum install -y ipvsadm
[root@proxy1 ~]# ipvsadm -C
部署keepalived实现LVS-DR模式调度器的高可用
[root@proxy1 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@tarena.com.cn //设置报警收件人邮箱
}
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
smtp_connect_timeout 30 //邮件服务器链接的时长超过30s判断为超时
router_id lvs1 //proxy2中改为lvs2 //设置路由ID号
vrrp_instance VI_1 {
state MASTER //proxy1主服务器为MASTER,proxy2服务器为BACKUP
interface eth0 //定义网络接口
virtual_router_id 51 //主辅VRID号必须一致
priority 100 //proxy2中改比100小即可 //服务器优先级
advert_int 1
authentication {
auth_type pass
auth_pass 1111 //主辅服务器密码必须一致
}
virtual_ipaddress { //配置VIP
192.168.4.15
}
}
virtual_server 192.168.4.15 80 { //设置ipvsadm的VIP规则
delay_loop 6
lb_algo rr //设置LVS调度算法为RR
lb_kind DR //设置LVS的模式为DR
#persistence_timeout 50 //
#注意这样的作用是保持连接,开启后,客户端在一定时间内始终访问相同服务器
protocol TCP
real_server 192.168.4.100 80 { //设置后端web服务器真实IP
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 { //设置后端web服务器真实IP
weight 2 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@proxy1 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf //设置路由开启状态
[root@proxy1 ~]# sysctl -p
[root@proxy1 ~]# systemctl start keepalived && iptables -F
[root@proxy1 ~]# ipvsadm -Ln #查看LVS规则
[root@proxy1 ~]# ip a s eth0 #查看VIP配置
检测
[root@client ~]# curl 192.168.4.15