KeepAlived集群高可用搭建
你的系统是否存在单点故障呢?那么这里我们基于Docker演示下基于KeepAlive的高可用配置。
简介
KeepAlived是一个用C语言编写的路由软件,它的主要目的是为了提供基于Linux服务器的负载均衡和高可用功能。其负载均衡是依赖lvs的,keepalived还实现了一些的检测器来实现后端服务器的健康检查。
它的高可用是通过VRRP协议实现的。
原理:Keepailived有一台主服务器和多台备份服务器,在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。
准备
- Docker 我的是18.03.1-ce
- keepalived镜像
搭建
这里为了简单起见,我使用Docker来模拟Linux系统,使用容器与操作系统上的操作差别不是特别大,明白其配置文件与原理在哪里都可以搭建。
-
拉取Keepalived镜像,正常情况下我们先用docker search xxx来搜索想要的镜像,如果觉得命令行模式下不好用,可以在dockerhub上搜索。
image.png
docker pull arcts/keepalived:1.2.0
-
对于拉取的镜像,点进去查看镜像的详情,镜像的tag,还有镜像的使用说明。
image.png
- 根据详情及自己所需创建容器,因为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
- 准备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 { } }
- 进入容器启用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的高可用。
- 当我们不启用keepalived的时候,172.17.0.253这个IP是ping不通的
- 当我们运行两个keepalived软件的时候,可以ping通172.17.0.253这个软件
- 挂掉任何一个节点,172.17.0.25仍然可以ping通
这次没有做过多的功能,但是可以想到当IP实现高可用的时候,IP绑定的服务器提供的服务就是高可用的。
最后
关于keepalived的使用,要具体实操才能明白怎么回事,其一般与lvs(自带)或HAProxy配套使用,敬请期待接下来更多内容。
参考

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
docker 批量垃圾清理
1.清理不使用的容器 docker下查看所有容器状态; [root@Ieat1 ace]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5bdec325d135 rancher/scheduler:v0.8.3 "/.r/r /rancher-en..." 9 minutes ago Up 9 minutes r-scheduler-scheduler-1-f76d0a08 71123182fa05 ad2daff1ff5b "/bin/sh -c '#(nop..." 11 minutes ago Created jovial_shannon dddc87acc76f 5b67f2e10f0a "/bin/sh -c '#(nop..." 11 minutes ago Created nervous_sinoussi fe9de3dd24e6 da359ca34301 "/bin/sh -c '#(nop..." 11 minutes ago Created clever_nightingale...
- 下一篇
阿里云ECS安装wordpress教程详细步揍
阿里云ECS安装wordpress教程详细步揍 注明:大神可以略过】 从去年开始就一直想买 阿里云 服务器,但由于阿里 云服务器杭州节点迟迟没有出现,所以耽搁许多工作。有人可能要说国内不是有很多做云服务的吗? 本人是新手,如果云服务器产品没有优质服务的话,我是不会买的。 选择阿里云最主要原因:论坛比较活跃,教程全面,还有 域名 备案可以不用转来转去(ps:原万网备案) 花了整整7天时间对云服务器进行配置、安装、调试进行了解,学习了一点基础命令语法,目前来说配置成功一个wordpress网站是完全没有 问题!作为个人站长出身的我总有那么一点技术情节! 这里要感谢 元芳老大给于的帮助,很多配置没有老大帮忙根本就理解不了! 教程目录 引用 1、【Xshell连接阿里云 ECS】 2、【阿里云ECS(linux)挂载数据盘】 3、【阿里云ECS(linux)一键安装web环境】 4、【阿里云ECS(linux)安装wordpress程序】 5、【阿里云ECS(linux)安装postfix发送邮件】 6、【拒绝ip地址直接访问 网站】 完整编辑后的教程地址:http://www.b...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6