C05S09-Keepalive服务架设

一、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软件包。

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

    bash 复制代码
    cp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf
  3. 配置keepalived.conf文件。

    properties 复制代码
    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配置文件从主调度器发送给备用调度器,并将备用调度器的文件做出如下修改。

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

    bash 复制代码
    systemctl restart keepalived
  6. 配置系统内核文件/etc/sysctl.conf。

    properties 复制代码
     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. 应用内核配置,使其生效。

    bash 复制代码
    sysctl -p
  8. 检查ipvsadm策略、VIP是否正常显示。

2. 后端服务器部署

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

    yaml 复制代码
    # 第一台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. 保存文件后,应用网卡配置。

    bash 复制代码
    netplan apply
  3. 在两台服务器上配置静态路由。

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

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

    bash 复制代码
    sysctl -p
  6. 开启两台后端服务器的Nginx服务。

    bash 复制代码
    systemctl restart nginx

3. 客户端访问测试

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

4. 调度器宕机测试

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

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

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

相关推荐
keep intensify7 分钟前
Redis基础指令全解析:从入门到精通
linux·数据库·c++·redis
Industio_触觉智能9 分钟前
RK3562核心板/开发板RT-Linux系统实时性及硬件中断延迟测试
linux·嵌入式开发·瑞芯微·rk3562·rt linux·xenomai rt·preempt_rt
爱吃生蚝的于勒15 分钟前
【Linux】零基础学会linux环境基础开发工具使用(yum,vim,makefile,gdb)
linux·服务器·数据结构·c++·蓝桥杯·编辑器·vim
本贾尼22 分钟前
Linux系统下的终端,会话,shell,bash,进程组这几个概念的关系。
linux·服务器·网络·ubuntu·bash
零基础的修炼29 分钟前
Linux---线程封装
linux·c++·算法
---学无止境---32 分钟前
Linux中比较两个字符串的前count个字符的汇编实现
linux
文火冰糖的硅基工坊41 分钟前
[嵌入式系统-115]:鸿蒙操作系统(HarmonyOS)与欧拉操作系统(openEuler)、Linux操作系统的关系、比较及异同如下:
linux·服务器·科技·华为·重构·架构·harmonyos
2401_837088501 小时前
Redis的vim基本操作
linux·编辑器·vim
馨谙1 小时前
标题:Linux 系统中的“保险库管理员”:深入浅出理解 /etc/shadow 文件
linux·运维·服务器
---学无止境---1 小时前
Linux中zonelist分配策略初始化
linux