目的是多个管理服务器被绑定为一个服务器,并且由这个服务器进行作业分配。由于服务器之间基本是用ssh进行的,所以这里是对ssh服务进行负载均衡
环境配置
环境:Centos7.9
node02,node03:keepalive
192.168.232.12
192.168.232.13
node01,node00:lvs
192.168.232.10
192.168.232.11
keepalive搭建部署
- node02,node03:
yum -y install ipvsadm keepalived - vim /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.232.188
}
}
##这里推荐VIP与IP地址不要在同一网段,具体原理不太理解,会给出参考文档
virtual_server 192.168.100.188 22 {
delay_loop 6
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.232.10 22 {
weight 1
TCP_CHECK {
connect_timeout 3
delay_before_retry 3
connect_port 22
}
}
real_server 192.168.232.11 22 {
weight 1
TCP_CHECK {
connect_timeout 3
delay_before_retry 3
connect_port 22
}
}
}
对node03进行行该只需要把MASTER改为BACKUP
systemctl start keepalived
lvs配置
1.node01,node00
yum -y install ipvsadm keepalived
执行如下脚本即可,至于脚本命令
2.脚本如下 这个脚本的执行可以写在rc.local里(可能)
这个脚本里主要是绑带VIP和对内核进行改变,具体我也不太懂
#!/bin/sh
VIP=192.168.100.188
. /etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo down
/sbin/ifconfig lo up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
/sbin/sysctl -p >/dev/null 2>&1
/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "LVS-DR real server starts successfully.\n"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del $VIP >/dev/null 2>&1
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "LVS-DR real server stopped.\n"
;;
status)
isLoOn=`/sbin/ifconfig lo:0 | grep "$VIP"`
isRoOn=`/bin/netstat -rn | grep "$VIP"`
if [ "$isLoON" == "" -a "$isRoOn" == "" ]; then
echo "LVS-DR real server has run yet."
else
echo "LVS-DR real server is running."
fi
exit 3
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
执行后成功即可
部署成功标志 访问VIP可以轮询登录两个节点
同理Node03也可以(不清楚这个高可用是不是这样的):
实验:本配置使用的是轮询模式连接客户机,那么加入将要连接的客户机宕机了会发生什么呢?
两节点正常状态:
当将要登录node00时,节点出问题
:
等一段时间在登陆 就不会出错了
结论:
在等一段时间后,录会只登录到node01 并且重启node00后 node00重新进入轮询排队
直接访问,第一次会出错,第二次出现如上情况。
世界上没有一条河不拐弯,但最终都要流向大海。