Keepalived LVS-DR模式
2024-11-27 03:04:35 阅读次数:24
DR,LVS
配置Keepalived LVS-DR模式
在这种模式下,虚拟 IP 在某时刻只能属于某一个节点,另一个节点作为备用节点存在。当主节点不可用时,备用节点接管虚拟 IP,提供正常服务。
配置参数: 节点 k8s01(主节点); 节点 k8s02(备用节点) ; 虚拟 IP 192.168.10.110对外提供服务的 IP。 要求默认情况下由节点 k8s01
提供服务,当节点 k8s01 不可用时,由节点 k8s02 提供服务(即虚拟 IP 漂移至节点 k8s02)。
virtual_server 192.168.10.131 80 { #负载均衡配置 (重要:端口必须与realserver端口一致,不能更改)}
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server localhost
smtp_connect_timeout 30
router_id xuegod62
}
发送交给本地 sendmail 服务处理。
vrrp_instance apache {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.111
}
}
virtual_server 192.168.2.111 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
后,再次访问,才会被转发到另一台 real server 上。 persistence 持久性的意思
protocol TCP
real_server 192.168.1.64 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.65 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
k8s01 master
yum install -y keepalived
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bk
[root@k8s01 ~]# cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server localhost
smtp_connect_timeout 30
router_id k8s01
}
vrrp_instance apache {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.110
}
}
virtual_server 192.168.10.110 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.10.133 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.10.134 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
systemctl restart keepalived
systemctl enable keepalived
ipvsadm -L –n
#注:没有看到 realserver,是因为两台 realserver 还没有开启 httpd 服务。
k8s02 backup
yum install -y keepalived
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
[root@k8s01 ~]# scp /etc/keepalived/keepalived.conf k8s02:/etc/keepalived/
[root@k8s02 ~]# cat /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server localhost
smtp_connect_timeout 30
router_id k8s02 #运行 keepalived 的机器标示符
}
vrrp_instance apache {
state BACKUP #当前 LVS 状态为备用分发器
interface ens33
virtual_router_id 51
priority 90 #LVS 优先级,备的要比主的小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.110
}
}
virtual_server 192.168.10.110 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_server 192.168.10.133 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.10.134 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
systemctl restart keepalived
systemctl enable keepalived
k8s03 配置RS1
vim /etc/init.d/lvsrsdr
VIP=192.168.10.110
source /etc/init.d/functions
case $1 in
start)
echo 'start LVS of Realserver DR'
/sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo: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
;;
stop)
/sbin/ifconfig lo:1 down
echo 'Close LVS of Realserver DR'
echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo '0' > /proc/sys/net/ipv4/conf/lo/arp_announce
echo '0' > /proc/sys/net/ipv4/conf/all/arp_ignore
echo '0' > /proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage:$0 (start|stop)"
exit 1
esac
chmod +x /etc/init.d/lvsrsdr
/etc/init.d/lvsrsdr start
echo "/etc/init.d/lvsrsdr start" >> /etc/rc.local
ifconfig -a
……………………………………………………………………………………….
lo:1: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.10.110 netmask 255.255.255.255
loop txqueuelen 1000 (Local Loopback)
yum install -y httpd
echo 192.168.10.133 > /var/www/html/index.html
systemctl restart httpd
k8s04 配置RS2
从k8s03上拷贝脚本
[root@k8s03 ~]# scp /etc/init.d/lvsrsdr k8s04:/etc/init.d/
然后执行
chmod +x /etc/init.d/lvsrsdr
/etc/init.d/lvsrsdr start
echo "/etc/init.d/lvsrsdr start " >> /etc/rc.local
ifconfig -a
……………………………………………………………………………………….
lo:1: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 192.168.10.110 netmask 255.255.255.255
loop txqueuelen 1000 (Local Loopback)
yum install -y httpd
echo 192.168.10.134 > /var/www/html/index.html
systemctl restart httpd
测试
[root@k8s01 ~]
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.110:80 rr persistent 50
-> 192.168.10.133:80 Route 1 0 0
-> 192.168.10.134:80 Route 1 0 0
ipvsadm --list --timeout
[root@k8s02 ~]
[root@k8s02 ~]
Timeout (tcp tcpfin udp): 900 120 5
You have new mail in /var/spool/mail/root
[root@k8s02 ~]
如果停掉k8s03的httpd
[root@k8s02 ~]
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.10.110:80 rr persistent 50
-> 192.168.10.134:80 Route 1 0 1
版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_13236892/5592941,作者:哭泣的馒头,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。
上一篇:ansible-cmdb友好展示ansible收集主机信息
下一篇:负载均衡四层和七层