KeepAlived集群高可用搭建

简介: 你的系统是否存在单点故障呢?那么这里我们基于Docker演示下基于KeepAlive的高可用配置。简介KeepAlived是一个用C语言编写的路由软件,它的主要目的是为了提供基于Linux服务器的负载均衡和高可用功能。

你的系统是否存在单点故障呢?那么这里我们基于Docker演示下基于KeepAlive的高可用配置。

简介

KeepAlived是一个用C语言编写的路由软件,它的主要目的是为了提供基于Linux服务器的负载均衡和高可用功能。其负载均衡是依赖lvs的,keepalived还实现了一些的检测器来实现后端服务器的健康检查。

它的高可用是通过VRRP协议实现的。

原理:Keepailived有一台主服务器和多台备份服务器,在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。

准备

  • Docker 我的是18.03.1-ce
  • keepalived镜像

搭建

这里为了简单起见,我使用Docker来模拟Linux系统,使用容器与操作系统上的操作差别不是特别大,明白其配置文件与原理在哪里都可以搭建。

  1. 拉取Keepalived镜像,正常情况下我们先用docker search xxx来搜索想要的镜像,如果觉得命令行模式下不好用,可以在dockerhub上搜索。


    img_c5377e054bfd5aa1762f58c9c60da046.png
    image.png
docker pull arcts/keepalived:1.2.0
  1. 对于拉取的镜像,点进去查看镜像的详情,镜像的tag,还有镜像的使用说明。


    img_e516bcd72a1927bce78eb15b787154e1.png
    image.png
  1. 根据详情及自己所需创建容器,因为keepalived需要创建vip,其对网络权限要求较高,我们在启动容器的时候需要增加权限,启动方式如下。
docker run -it --name ha1 --net=host --cap-add NET_ADMIN  124d8d1c0dc2 /bin/bash
docker run -it --name ha2 --net=host --cap-add NET_ADMIN  124d8d1c0dc2 /bin/bash
  1. 准备keepalived的配置文件,其配置语法参考文章末尾的官方文档。因为是在容器中,对lvs支持不是特别好,暂时不用lvs。只配置keepalived演示vip的高可用。
// Master的配置
vrrp_instance MAIN {
  state MASTER
  interface eth0
  virtual_router_id 2
  priority 100
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass pwd1
  }
  virtual_ipaddress {
    172.17.0.254/16
  }
}

vrrp_instance MAIN {
  state BACKUP
  interface eth0
  virtual_router_id 2
  priority 90
  advert_int 1
  authentication {
    auth_type PASS
    auth_pass pwd1
  }
  virtual_ipaddress {
    172.17.0.254/16
  }
}

解释几个比较关键的参数:

  • vrrp_instance: 定义一个vrrp的实例块,后面接上实例块的名称,可以任意起,最好事字符串,这里我们定义的是MAIN
  • state: 定义当前安装keepalived软件的服务器是主节点还是备份节点
  • interface: 指定虚拟IP定义在那个网卡上面
  • virtual_router_id : 虚拟路由ID,负责相同虚拟IP的keepalived集群最好定义为相同的id
  • priority: 优先级,谁的优先级高,谁更容易成为主节点
  • advert_int: 主备服务器之间的通信间隔
  • authentication: 准备服务器之间的认证类型与额外指定
  • virtual_ipaddress : 定义虚拟IP块。

配置文件相关的内容,这里就不多说了,一般来说keepalived的配置文件主要包含:

// 全局块
global_defs {
}
// VRRP实例块
vrrp_instance xx{
}
// 虚拟服务器块
virtual_server IP PORT {
    //真实的服务器块
    real_server @IP POR {
    }
}

  1. 进入容器启用keepalived

两个容器启动方式差不多,配置文件稍微一点不同

#进入容器内部
docker exec -it ha1 /bin/bash
#查看keepalived的帮助信息
keepalived -h
#编辑配置文件
vi /etc/keepalived/keepalived.conf
# 测试配置文件,然后运行,具体的参数根据命令行的帮助信息自己运行
keepalived -t -f /etc/keepalived/keepalived.conf
keepalived l -f /etc/keepalived/keepalived.con

演示

这次我们只是演示keepalived的高可用。

  1. 当我们不启用keepalived的时候,172.17.0.253这个IP是ping不通的
  2. 当我们运行两个keepalived软件的时候,可以ping通172.17.0.253这个软件
  3. 挂掉任何一个节点,172.17.0.25仍然可以ping通

这次没有做过多的功能,但是可以想到当IP实现高可用的时候,IP绑定的服务器提供的服务就是高可用的。

最后

关于keepalived的使用,要具体实操才能明白怎么回事,其一般与lvs(自带)或HAProxy配套使用,敬请期待接下来更多内容。

参考

目录
相关文章
|
6天前
|
监控 应用服务中间件 nginx
使用Keepalived实现双机热备,实现服务高可用
使用Keepalived实现双机热备,实现服务高可用
30 0
|
6天前
|
运维 负载均衡 监控
keepalived+LVS实现高可用性集群
通过结合keepalived和LVS,你可以创建一个高可用性的负载均衡集群,确保服务器的稳定性和性能。这对于托管Web服务、应用服务器等关键服务的服务器集群非常有用。
41 1
|
8月前
|
负载均衡 测试技术
LVS+KeepAlived构建高可用集群
LVS+KeepAlived构建高可用集群
56 0
|
负载均衡 安全 网络安全
构建Keepalived高可用集群
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器.
322 0
|
网络架构
Keepalived 介绍、安装、配置(高可用)
1、keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。 2、VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。
1170 0
|
负载均衡 应用服务中间件 nginx
|
监控 关系型数据库 MySQL
|
网络协议 开发工具 网络架构