Keepalived工作方式及配置

本文详细介绍了Keepalived在集群管理中的作用,VRRP协议如何解决单点故障,并通过步骤展示了如何配置两台路由器实现服务高可用,包括设置VIP、配置LVS和VRRP,以及Windows客户端的访问测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一,keepalived是做什么的

keepalived是专门用来监控集群系统中各个服务节点的状态,如果集群系统中某个节点出现了故障,keepalived会自动检测到,并自动将出现故障的服务节点从集群系统中去除,从而保持你的服务可以靠其他无故障的服务节点正常保持运行状态,这些工作都可以使用keepalived自动完成,而人工只需要修复出现故障的服务节点。

Keepalived又引入了VRRP的功能(虚拟路由冗余协议),他的目的是解决静态路由出现单点故障的问题,通过VRRP实现网络不间断的稳定提供服务

二,VRRP协议

目前客户机访问服务的过程都是通过配置静态路由或者默认网关找到所需服务的前端路由器,通过前端的路由器转发到真实的集群服务某个节点中,所以,一但和主机之间的路由器发生了故障,客户机就会无法访问服务,这种通信模式就相当于一个单点瓶颈,为了解决单点堵塞的问题,引入了VRRP的协议。

VRRP协议是一种容错主备模式协议,他的作用就是当客户机的下一跳路由出现故障时,由另一台完好的路由来接替工作,通过这种方式保持服务一直提供,而客户机并不会感受到任何问题。

 

三,具体配置方法

下面我将演示两台路由器的实现过程,

两台路由器将共用一个vip(虚拟ip)

  1. 拓扑图

  1. 双前安装keepalived和ipvsadm
yum -y install ipvsadm keepalived

2,双后安装httpd服务,并配置两个主页通过本机测试访问

yum -y install httpd

编辑简单网页内容,纯纯为了效果

s2也一样配置简单网页内容

测试访问

3,双前开firewall80端口,关闭selinux

s1开启并重新加载,关闭selinux

s2开启并重新加载,关闭selinux

4,编辑配置文件

因为配置文件过于重要,为避免出现错误做一个备份

global_defs {

notification_email {

root@localhost

}

notification_email_from root@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node1.zhang.com

}

vrrp_instance websrv {

state Master

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.100.250

}

}

virtual_server 192.168.100.250 80 {

delay_loop 3        <==轮询时间间隔,单位s

lvs_sched rr        <==指定LVS算法

lvs_method DR        <==指定LVS模式

protocol TCP<==指定协议类型

real_server 192.168.100.11 80 {        <==real-server的IP及端口

weight 1HTTP_GET {

url {

path /        <==检查根目录

status_code 200        <==响应代码为200为健康.real-server为存活状态

}

connect_timeout 3        <==连接real-server超时时间,单位s

}

}

real_server 192.168.100.22 80 {

weight 1HTTP_GET {

url {

path /

status_code 200

}

connect_timeout 3

}

}

}

5,双前重启keepalived和ipvsadm服务

6,双后配置DR直连路由的vip,脚本方式

赋予执行权限

chmod 700 lvs-re

al-dr.sh

脚本内容,附上源码

#! /bin/bash

VIP=192.168.100.250

ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

/sbin/route add -host $VIP dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

7,双后开firewall80端口,关闭selinux,关闭sel

8,windows段访问测试

9,将r2关机模仿故障再次访问成功

 机​​​​

Keepalived 是一款用于高可用性(High Availability, HA)的开源软件,主要用于在两个或更多服务器之间提供冗余的虚拟路由器(VIP)。下面是 Keepalived 的安装和基本配置步骤: **安装 Keepalived**: 1. 更新包列表: ```bash sudo apt-get update ``` 2. 安装 Keepalived: ```bash sudo apt-get install keepalived ``` 对于 CentOS 或 RHEL 类型的系统,可能需要安装 EPEL 源,然后安装: ```bash sudo yum install epel-release -y sudo yum install keepalived ``` **配置 Keepalived 主机配置文件**: 通常情况下,你需要编辑 `/etc/keepalived/keepalived.conf` 文件。这里是一个基本的配置示例: ```bash vrrp_script chk_http { script "curl -s http://localhost && echo OK" interval 2 weight 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass <password> } virtual_ipaddress { 192.168.1.1 } track_script { chk_http } } ``` 这里的配置说明: - `vrrp_script` 定义了一个脚本,用于检查 HTTP 服务是否正常。 - `vrrp_instance` 是 VRRP 实例,定义了网络接口、优先级、虚拟路由器 ID 和 VIP 地址等信息。 - `track_script` 表示当 `chk_http` 脚本返回非零值(失败),Keepalived 将切换到备份状态。 **启动和监控 Keepalived**: 1. 启动 Keepalived 服务: ```bash sudo systemctl start keepalived ``` 2. 设置开机自动启动: ```bash sudo systemctl enable keepalived ``` 3. 使用 `vrrp_status` 命令查看运行状态: ```bash vrrp_status ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无求道贾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值