返回

Keepalived原理与实战部署,轻松实现高可用服务

后端

Keepalived 简介

Keepalived是一个基于VRRP协议来实现LVS服务高可用方案的开源软件,它可以帮助你解决单点故障问题,确保服务的高可用性。Keepalived的主要功能是通过VRRP协议来选举出主备节点,当主节点出现故障时,备节点会快速接管服务,保证服务的连续性。

VRRP 协议原理

VRRP(虚拟路由器冗余协议)是一种用来实现路由器冗余的协议,它通过选举的方式来确定主备路由器。在VRRP协议中,每个路由器都有一个唯一的VRRP ID,并且可以配置一个优先级。当路由器启动时,它会向其他路由器发送VRRP通告消息,通告消息中包含了路由器的VRRP ID和优先级。

收到VRRP通告消息的路由器会根据通告消息中的VRRP ID和优先级来确定自己的状态。如果收到更高优先级的VRRP通告消息,则自己为备用路由器;如果收到更低优先级的VRRP通告消息,则自己为主路由器。

Keepalived 实战部署

下面我们以一个具体的例子来演示如何使用Keepalived来实现LVS服务的高可用。

1. 环境准备

我们准备了两台CentOS 7.9服务器,IP地址分别为192.168.1.100和192.168.1.101。这两台服务器将作为LVS的Real Server。

2. 安装Keepalived

在两台服务器上安装Keepalived软件包:

yum install keepalived

3. 配置Keepalived

在两台服务器上分别创建Keepalived配置文件/etc/keepalived/keepalived.conf:

global_defs {
  router_id LVS_1
}

vrrp_script chk_haproxy {
  script "/etc/keepalived/check_haproxy.sh"
  interval 2
  timeout 10
  rise 2
  fall 5
}

vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass 1111
  }
  virtual_ipaddress {
    192.168.1.200
  }
  track_script {
    chk_haproxy
  }
}

在上面的配置文件中,我们配置了Keepalived的全局设置,包括路由器ID、VRRP脚本和VRRP实例。

4. 配置LVS

在两台服务器上分别安装LVS软件包:

yum install ldirectord

在两台服务器上分别创建LVS配置文件/etc/haproxy/haproxy.cfg:

global
  log /dev/log local0
  chroot /var/lib/haproxy
  stats socket /var/lib/haproxy/stats
  defaults
    mode http
    log global
    option httplog
    option dontlognull
    retries 3
    timeout connect 5000
    timeout client 50000
    timeout server 50000
    option forwardfor except 127.0.0.1
    option http-server-close
    stats enable
    stats auth admin:admin
    stats uri /haproxy?stats
  frontend HAProxyFrontend
    bind 192.168.1.200:80
    default_backend HAProxyBackend
  backend HAProxyBackend
    server Server1 192.168.1.100:80 check
    server Server2 192.168.1.101:80 check

在上面的配置文件中,我们配置了LVS的全局设置,包括日志、统计信息和默认设置。我们还配置了一个前端和一个后端。

5. 启动服务

在两台服务器上分别启动Keepalived和LVS服务:

systemctl start keepalived
systemctl start haproxy

6. 测试高可用性

现在,我们可以通过访问LVS的虚拟IP地址192.168.1.200来测试服务的高可用性。当我们关闭其中一台Real Server时,LVS会自动将请求转发到另一台Real Server,保证服务的连续性。

总结

通过本篇文章的学习,你已经了解了Keepalived的工作原理和实战部署方法。Keepalived可以帮助你轻松实现LVS服务的高可用,确保服务的连续性。