基于Keepalived高可用集群网站架构实现的多种方法(2)

实验二:实现keepalived双主方式高可用基于LVS-DR模式的应用实战: 实验原理

互为主从:主从都在工作;其中一个宕机了,VIP漂移到另一个上,提供服务

1、实验环境,基本同上 机器名称IP配置服务角色备注
lvs-server-1   VIP:172.17.120.120 DIP:172.17.66.66   负载均衡器 主服务器   开启路由功能 配置keepalived  
lvs-server2   VIP:172.17.120.121 DIP:172.17.251.66   后端服务器 从服务器   开启路由功能 配置keepalived  
rs01   RIP:172.17.77.77   后端服务器   网关指向DIP(桥接)  
rs02   RIP:172.17.252.111   后端服务器   网关指向DIP(桥接)  
2、配置 lvs-server-master1(第一个主服务器)

  配置基本同上,就是加了一个实例段
  修改keepalived主(lvs-server-master)配置文件实现 virtual_instance 实例

2.1 主的设置 VI_1 vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state MASTER interface eth1 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass keer } virtual_ipaddress { 172.17.120.120 } } virtual_server 172.17.120.120 80 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.255 persistence_timeout 600 protocol TCP real_server 172.17.1.7 80 { weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 172.17.22.22 80 { weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } 2.2 从的设置 VI_2 vrrp_instance VI_2 { state BACKUP interface eth1 virtual_router_id 52 priority 98 advert_int 1 authentication { auth_type PASS auth_pass along } virtual_ipaddress { 172.17.120.121 } } virtual_server 172.17.120.121 443 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.255 persistence_timeout 600 protocol TCP real_server 172.17.77.77 443 { weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 172.17.252.111 443 { weight 2 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } 2.3 开启keepalived 服务 service keepalived start

  能看到网卡别名 和 负载均衡策略已经设置好了

2.4 后续

  因为是主从方式,所以从上的配置和主只有一点差别;所以可以把这个配置文件拷过去

scp /etc/keepalived/keepalived.conf @172.17.11.11: 3、配置 lvs-server-master2(第二个主服务器)

  在lvs-server2 上,基本同1,就是把实例的主从调换一下

3.1 从的设置 VI_1 vim /etc/keepalived/keepalived.conf vrrp_instance VI_1 { state BACKUP interface eth1 virtual_router_id 51 priority 98 advert_int 1 authentication { auth_type PASS auth_pass keer } virtual_ipaddress { 172.17.120.120 } } 3.2 主的设置 VI_2 vrrp_instance VI_2 { state MASTER interface eth1 virtual_router_id 52 priority 100 advert_int 1 authentication { auth_type PASS auth_pass keer } virtual_ipaddress { 172.17.120.121 } } 3.3 开启keepalived 服务 service keepalived start

  能看到网卡别名 和 负载均衡策略已经设置好了,显示结果会等段时间再显示
  

4、配置 real server 4.1 开启事前准备好的web服务 systemctl start nginx systemctl start mariadb systemctl start php-fpm 4.2 因为是DR模式,需在rs上进行设置 4.2.1 配置路由

  配置VIP到本地回环网卡lo上,并只广播自己

ifconfig lo:0 172.17.100.100 broadcast 172.17.100.100 netmask 255.255.255.255 up

  配置本地回环网卡路由

route add -host 172.17.100.100 lo:0 4.2.2 使RS “闭嘴” echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

忽略ARP广播

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

注意:关闭arp应答
1:仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应
2:必须避免将接口信息向非本网络进行通告

4.2.3 想永久生效,可以写到配置文件中 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 5、测试 5.1 lvs负载均衡作用是否开启

  客户端访问 公网172.17.100.100只能访问80
https://172.17.100.101/ 公网172.17.100.101只能访问443

基于Keepalived高可用集群网站架构实现的多种方法


基于Keepalived高可用集群网站架构实现的多种方法


基于Keepalived高可用集群网站架构实现的多种方法


基于Keepalived高可用集群网站架构实现的多种方法

  也可以详细测试:
① 在rs1 上设置一个测试一面

vim /data/web/test.html real server 1

② 在rs2 上设置一个测试一面

vim /data/web/test.html real server 2

③ 网页访问或https://172.17.100.101/test.html 发现有real server 1也有real server 2

基于Keepalived高可用集群网站架构实现的多种方法

5.2 测试keepalived的双主方式

  使keepalive 的任意一个宕机

service keepalived stop

  会发现服务能照常访问,另一个机器80、443都能访问,且宕机的VIP漂移到了另一个服务器上

基于Keepalived高可用集群网站架构实现的多种方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b4b3190093b2660242441c7dcb312655.html