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

实验三:实现keepalived主从方式高可用基于LVS-NAT模式的应用实战: 实验原理

主从:一主一从,主的在工作,从的在休息;主的宕机了,VIP漂移到从上,由从提供服务

1、环境准备 机器名称IP配置服务角色备注
lvs-server-1   VIP:172.17.120.120 DIP:192.168.37.120   负载均衡器 主服务器   开启路由功能 配置keepalived  
lvs-server-2   VIP:172.17.120.120 DIP:192.168.37.120   后端服务器 从服务器   开启路由功能 配置keepalived  
rs01   RIP:192.168.37.222   后端服务器   网关指向DIP  
rs02   RIP:192.168.37.111   后端服务器   网关指向DIP  

注意:要确保rs和DIP在一个网段,且不和VIP在一个网段

2、配置 lvs-server-master(主服务器) 2.1 配置文件中修改三段

  配置文件为 /etc/keepalived/keepalived.conf
① 全局段,故障通知邮件配置

global_defs { notification_email { root@localhost } notification_email_from root@keer.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id keepalived_lvs }

② 配置虚拟路由器的实例段,VI_1是自定义的实例名称,可以有多个实例段

vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 190 priority 100 advert_int 1 authentication { auth_type PASS auth_pass keer } virtual_ipaddress { 172.17.120.120 192168.37.120 } }

③ 设置一个virtual server段

virtual_server 172.17.120.120 80 { delay_loop 6 lb_algo wrr lb_kind NAT nat_mask 255.255.255.255 persistence_timeout 120 protocol TCP

④ 配置real server段

real_server 192.168.37.222 80 { weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.37.111 80 { weight 2 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } 2.2 因为是NAT模式,所以需开启路由转发功能 vim /etc/sysctl.conf net.ipv4.ip_forward = 1

  接着使用sysctl -p 读一下,使参数生效

2.3 开启keepalived 服务 service keepalived start

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

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


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

2.4 后续

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

scp /etc/keepalived/keepalived.conf @172.17.251.66: 3、配置 lvs-server-backup (从服务器) 3.1 修改配置文件

  因为这个配置文件是从主服务器上拷贝过来的,所以只需要修改②实例段,其他都不要变,保证一模一样:

vrrp_instance VI_1 { state BACKUP interface eth1 virtual_router_id 190 priority 98 advert_int 1 authentication { auth_type PASS auth_pass keer } virtual_ipaddress { 172.17.120.120 192.168.37.120 } } 3.2 因为是NAT模式,所以需开启路由转发功能 vim /etc/sysctl.conf net.ipv4.ip_forward = 1

  接着使用sysctl -p读一下,使参数生效

3.3 开启keepalived 服务 service keepalived start

  负载均衡策略已经设置好了,注意:主director没有宕机,从上就不会有VIP

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

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

  只需把网关指向DIP

route add default gw 192.168.37.123

  此时,我们可以查看一下网关:

[root@rs01 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.37.123 0.0.0.0 UG 0 0 0 ens34 0.0.0.0 172.17.0.1 0.0.0.0 UG 100 0 0 ens33 172.17.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens33 192.168.37.0 0.0.0.0 255.255.255.0 U 100 0 0 ens34 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

  我们发现,还有一个172的网关在生效,所以我们把它down掉:

[root@rs01 ~]# ifconfig ens33 down

  一定要注意这一点,不然多个网关会让数据不知道从哪走~

5、测试 5.1 lvs负载均衡作用是否开启

  客户端访问

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

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

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

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

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

③ 网页访问 发现有real server 1也有real server 2

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

5.2 测试keepalived的主从方式

① 使keepalive 的主宕机

service keepalived stop

  会发现服务能照常访问,但是VIP 漂移到了从上
  从多了网卡别名,且地址是VIP

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

③ 使keepalive 的主重新开启服务,因为主的优先级高,所以VIP又重新漂移到了主上

service keepalived start

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

  以上~如果有不足之处还请大家多多指教喏٩(๑>◡<๑)۶

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

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