C05S09-Keepalive服务架设

Keepalive实现LVS调度器高可用集群架设

一、Keepalive

1. Keepalive概述

代理服务器和调度器都是单点模式,Keepalive是一种实现LVS调度器实现高可用集群的架设,以提高节点的冗余和容错。

Keepalive是一种基于VRRP协议实现的调度器高可用方案,为了实现LVS的集群而设计开发,但是适用场景不仅局限于LVS。Keepalive会为后台服务做健康检查,服务不可用时,会自动移除IPVS的转发策略,服务恢复时会自动把策略重新加入IPVS中。

Keepalive可以实现以下功能:

  1. 主备切换。
  2. 故障检测和恢复。
  3. 主备设备通过组播地址224.0.0.18通信。
  4. 通过配置VIP来实现集群入口。

2. Keepalive工作原理

  1. 主备调度器的权重不同,通过VIP来访问调度器集群。
  2. 当主调度器故障,备用调度器会接替成为主服务器。通过VIP访问后端服务器,也就成为通过该调度器来进行访问。
  3. 当故障恢复,两台调度器会通过组播地址进行通信,比较权重。此时原先的主调度器会正常工作,通过VIP访问也就是通过该调度器进行访问。

二、Keepalive具体架设

1. 调度器部署

  1. 两台调度器上都安装ipvsadm和keepalived软件包。

    apt -y install ipvsadm keepalived
    
  2. 复制Keepalive配置文件模板。

    cp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf
    
  3. 配置keepalived.conf文件。

    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id LVS_01
       vrrp_iptables
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        virtual_ipaddress {
            192.168.1.100
        }
    }
    
    virtual_server 192.168.1.100 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 0
        protocol TCP
    
        real_server 192.168.1.129 80 {
            weight 1
            TCP_CHECK {
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    
        real_server 192.168.1.130 80 {
            weight 1
            TCP_CHECK {
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
    
  4. 将keepalived.conf配置文件从主调度器发送给备用调度器,并将备用调度器的文件做出如下修改。

    router_id LVS_01
    state BACKUP
    priority 50
    
  5. 保存文件后,分别在两台调度器上重启keepalived服务。

    systemctl restart keepalived
    
  6. 配置系统内核文件/etc/sysctl.conf。

     net.ipv4.ip_forward = 0
     net.ipv4.conf.all.send_redirects = 0
     net.ipv4.conf.default.send_redirects = 0
     net.ipv4.conf.ens37.send_redirects = 0
    
  7. 应用内核配置,使其生效。

    sysctl -p
    
  8. 检查ipvsadm策略、VIP是否正常显示。

2. 后端服务器部署

  1. 配置两台后端服务器的网卡。

    # 第一台RS服务器
    network:
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.1.129/24]
          gateway4: 192.168.1.254
        ens37:
          dhcp4: no
          addresses: [192.168.1.100/24]
    
    # 第二台RS服务器
    network:
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.1.130/24]
          gateway4: 192.168.1.254
        ens37:
          dhcp4: no
          addresses: [192.168.1.100/24]
    
  2. 保存文件后,应用网卡配置。

    netplan apply
    
  3. 在两台服务器上配置静态路由。

    route add -host 192.168.1.100 dev ens37
    
  4. 配置系统的内核文件/etc/sysctl.conf。

    net.ipv4.conf.ens37.arp_ignore = 1  
    net.ipv4.conf.ens37.arp_announce = 2
    
  5. 应用内核配置,使其生效。

    sysctl -p
    
  6. 开启两台后端服务器的Nginx服务。

    systemctl restart nginx
    

3. 客户端访问测试

  1. 访问VIP地址,查看是否能够获取到网页内容。

4. 调度器宕机测试

  1. 在主调度器上关闭keepalived访问。

    systemctl stop keepalived
    
  2. 查看两台调度器的网络信息,检查VIP是否发生了转移。

    ip address
    
  3. 再次通过客户端访问VIP,查看是否能够获取到网页内容。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值