栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

LVS DR模式+Keepalived部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LVS DR模式+Keepalived部署

LVS DR模式+Keepalived部署

主负载调度器
[root@localhost]# systemctl stop firewalld.service
[root@localhost]# setenforce 0
[root@localhost]# yum -y install ipvsadm keepalived
[root@localhost]# cd /etc/keepalived/
[root@localhost]# cp keepalived.conf keepalived.conf.bak #备份配置文件
[root@localhost]# vim keepalived.conf
global_defs {
smtp_server 127.0.0.1 #修改这一行,将邮件服务指向本地
router_id LVS_01 #指定服务器的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
#vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_garp_interval 0
#vrrp_gna_interval 0 #四行vrrp的配置注释掉, 取消严格遵守VRRP协议功能,否则VIP无法被连接
}

#定义VRRP热备实例参数
vrrp_instance VI_1 {
state MASTER #指定热备状态,主为MASTER,备为BACKUP。但真正的主备是用优先级区分。
interface ens33 #指定承载vip地址的物理接口
virtual_router_id 10 #指定虚拟路由器的ID号,每个热备组保持一致。
priority 100 #指定优先级,数值越大优先级越高
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #定义认证信息,每个热备组保持一致
auth_type PASS #认证类型
auth_pass abc123 #指定验证密码,主备服务器保持一致
}
virtual_ipaddress { #指定群集vip地址
192.168.237.100
}
}

#指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.237.100 80 {
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #指定调度算法,轮询(rr)
lb_kind DR #指定群集工作模式,直接路由(DR)
persistence_timeout 0 #连接保持时间(秒)
protocol TCP #应用服务采用的是 TCP协议

 real_server 192.168.237.138 80 {     #添加第一个Web节点的地址、端口
     weight 1      					#节点的权重

     TCP_CHECK {                 #采用TCP_CHECK健康检查的方式
         connect_port 80         #添加检查的目标端口
         connect_timeout 3       #添加连接超时(秒)
         nb_get_retry 3          #添加重试次数
         delay_before_retry 3    #添加重试间隔
     }
 }

 real_server 192.168.237.148 80 {      #添加第二个Web节点的地址、端口
     weight 1
     TCP_CHECK {
         connect_port 80
         connect_timeout 3
         nb_get_retry 3
         delay_before_retry 3
     }
 }

}

后面全部删除
:wq

[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ip addr show dev ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:f6:5a:9a brd ff:ff:ff:ff:ff:ff
inet 192.168.237.129/24 brd 192.168.237.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.237.100/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::a1ef:4b2d:6637:6caa/64 scope link
valid_lft forever preferred_lft forever

已经可以看到创建的虚拟网卡了

[root@localhost keepalived]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost keepalived]# systemctl start ipvsadm
[root@localhost keepalived]# ipvsadm -ln //查看调度策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.72.200:80 rr persistent 50
-> 192.168.237.138:80 Masq 1 0 0
-> 192.168.237.148:80 Masq 1 0 0

[root@yuji keepalived]# vim /etc/sysctl.conf
[root@yuji keepalived]# sysctl -p //刷新配置,读取修改后的配置
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

辅负载调度器
[root@localhost]# systemctl stop firewalld.service
[root@localhost]# setenforce 0
[root@localhost]# yum -y install ipvsadm keepalived
[root@localhost]# cd /etc/keepalived/
[root@localhost]# cp keepalived.conf keepalived.conf.bak #备份配置文件
[root@localhost]# vim keepalived.conf
global_defs {
smtp_server 127.0.0.1 #修改这一行,将邮件服务指向本地
router_id LVS_02 #指定服务器的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
#vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_garp_interval 0
#vrrp_gna_interval 0 #四行vrrp的配置注释掉, 取消严格遵守VRRP协议功能,否则VIP无法被连接
}

#定义VRRP热备实例参数
vrrp_instance VI_1 {
state BACKUP #指定热备状态,主为MASTER,备为BACKUP。但真正的主备是用优先级区分。
interface ens33 #指定承载vip地址的物理接口
virtual_router_id 10 #指定虚拟路由器的ID号,每个热备组保持一致。
priority 99 #指定优先级,数值越大优先级越高
advert_int 1 #通告间隔秒数(心跳频率)
authentication { #定义认证信息,每个热备组保持一致
auth_type PASS #认证类型
auth_pass abc123 #指定验证密码,主备服务器保持一致
}
virtual_ipaddress { #指定群集vip地址
192.168.237.100
}
}

#指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
virtual_server 192.168.237.100 80 {
delay_loop 6 #健康检查的间隔时间(秒)
lb_algo rr #指定调度算法,轮询(rr)
lb_kind DR #指定群集工作模式,直接路由(DR)
persistence_timeout 0 #连接保持时间(秒)
protocol TCP #应用服务采用的是 TCP协议

 real_server 192.168.237.138 80 {     #添加第一个Web节点的地址、端口
     weight 1      					#节点的权重

     TCP_CHECK {                 #采用TCP_CHECK健康检查的方式
         connect_port 80         #添加检查的目标端口
         connect_timeout 3       #添加连接超时(秒)
         nb_get_retry 3          #添加重试次数
         delay_before_retry 3    #添加重试间隔
     }
 }

 real_server 192.168.237.148 80 {      #添加第二个Web节点的地址、端口
     weight 1
     TCP_CHECK {
         connect_port 80
         connect_timeout 3
         nb_get_retry 3
         delay_before_retry 3
     }
 }

}

后面全部删除
:wq

[root@localhost keepalived]# systemctl start keepalived
[root@localhost keepalived]# ip addr show dev ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:94:7f:47 brd ff:ff:ff:ff:ff:ff
inet 192.168.237.141/24 brd 192.168.237.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::788f:e634:cdbd:3267/64 scope link
valid_lft forever preferred_lft forever

等下测试主负载调度器宕机后,会看到这里出现虚拟网卡

NFS服务器
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
[root@localhost ~]# setenforce 0
NFS服务器
[root@localhost ~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# mkdir /opt/zc /opt/wpc
[root@localhost opt]# echo ‘this is zc’ > /opt/zc/index.html
[root@localhost opt]# echo ‘this is wpc’> /opt/wpc/index.html
[root@localhost ~]# chmod 777 /opt/zc /opt/wpc
[root@localhost ~]# vim /etc/exports
/opt/zc 192.168.237.0/24(rw,sync)
/opt/wpc 192.168.237.0/24(rw,sync)
:wq

[root@localhost ~]# systemctl start nfs.service
[root@localhost ~]# systemctl start rpcbind.service

web1服务器
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
[root@localhost network-scripts]# ifup lo:0
DEVICE=lo:0
IPADDR=192.168.237.100
NETMASK=255.255.255.255

If you’re having problems with gated making 127.0.0.0/8 a martian, you can change this to something else (255.255.255.255, for example)

BROADCAST=192.168.237.100
ONBOOT=yes
NAME=loopback
:wq

[root@localhost network-scripts]# ifconfig lo:0
lo:0: flags=73 mtu 65536
inet 192.168.237.100 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)

[root@localhost network-scripts]# route add -host 192.168.237.100 dev lo:0
[root@localhost network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.237.2 0.0.0.0 UG 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.237.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.237.110 0.0.0.0 255.255.255.255 UH 0 0 0 lo

[root@localhost network-scripts]# vim /etc/rc.local
/sbin/route add -host 192.168.237.100 dev lo:0
:wq

[root@localhost network-scripts]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
:wq

[root@localhost network-scripts]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@localhost network-scripts]# mount 192.168.237.128:/opt/zc /var/www/html
[root@localhost network-scripts]# yum -y install nfs-utils rpcbind httpd
[root@localhost network-scripts]# systemctl start rpcbind
[root@localhost network-scripts]# systemctl start httpd

web服务器2
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
[root@localhost network-scripts]# ifup lo:0
DEVICE=lo:0
IPADDR=192.168.237.100
NETMASK=255.255.255.255

If you’re having problems with gated making 127.0.0.0/8 a martian, you can change this to something else (255.255.255.255, for example)

BROADCAST=192.168.237.100
ONBOOT=yes
NAME=loopback
:wq

[root@localhost network-scripts]# ifconfig lo:0
lo:0: flags=73 mtu 65536
inet 192.168.237.120 netmask 255.255.255.255
loop txqueuelen 1 (Local Loopback)

[root@localhost network-scripts]# route add -host 192.168.237.100 dev lo:0
[root@localhost network-scripts]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.237.2 0.0.0.0 UG 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.237.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.237.120 0.0.0.0 255.255.255.255 UH 0 0 0 lo

[root@localhost network-scripts]# vim /etc/rc.local
/sbin/route add -host 192.168.237.100 dev lo:0
:wq

[root@localhost network-scripts]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
:wq

[root@localhost network-scripts]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

[root@localhost network-scripts]# mount 192.168.237.128:/opt/zc /var/www/html
[root@localhost network-scripts]# yum -y install nfs-utils rpcbind httpd
[root@localhost network-scripts]# systemctl start rpcbind
[root@localhost network-scripts]# systemctl start httpd

测试1
客户端登录192.168.237.100,看到写入页面,等一段时间刷新看到第二个写入页面

测试2
停止主负载调度器的keepalived服务,开启辅负载调度器的keepalived

辅负载调度器
[root@localhost keepalived]# systemctl start keepalived.service
[root@localhost keepalived]# ip addr show dev ens33
2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:94:7f:47 brd ff:ff:ff:ff:ff:ff
inet 192.168.237.141/24 brd 192.168.237.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.237.100/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::788f:e634:cdbd:3267/64 scope link
valid_lft forever preferred_lft forever

[root@localhost keepalived]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost keepalived]# systemctl start ipvsadm
[root@localhost keepalived]# ipvsadm -ln //查看调度策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.237.100:80 rr persistent 50
-> 192.168.237.138:80 Masq 1 0 0
-> 192.168.237.148:80 Masq 1 0 0

[root@localhost keepalived]# vim /etc/sysctl.conf
[root@localhost keepalived]# sysctl -p //刷新配置,读取修改后的配置
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

测试
客户端登录192.168.237.100,看到写入页面,等一段时间刷新看到第二个写入页面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/962509.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号