admin管理员组文章数量:1576799
高可用集群
LB:Load Balance 负载均衡 LVS/HAProxy/nginx(http/upstream, stream/upstream)
HA:High Availability 高可用集群 MySQL、Redis、Zookeeper、Kafka 有状态的服务
KeepAlived 通用的高可用集群,更适合无状态的服务
SPoF: Single Point of Failure,解决单点故障
HPC:High Performance Computing 高性能集群
VRRP(Virtual Router Redundancy Protocol)
前言
保证网络传输不中断通常是我们生产中的硬性指标。但是传统的那种使用网关与外界通讯时,一旦网关出现故障,网络传输中断,业务就会收到影响,然后就出现了VRRP协议技术
VRRP将多台设备组成一个虚拟设备,通过配置虚拟设备的ip为缺省网关,另外的设备设为缺省网关的备份,当默认网关发生故障的时候,将推举新的网关设备承担数据流量。保障了网络的可靠通信,当Master发生故障时。将自动切换到Backup设备进行转发
VRRP是虚拟路由冗余协议,是一种实现网关冗余的协议,在主机的下一跳出现故障时,可以通过VRRP即时的切换到备份设备,从而实现链路的可靠性。
VRRP的工作原理
VRRP协议定义了三种状态:初始状态(Initialize),活动状态(Master),备份状态(Backup),只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文
Initialize | 通常设备启动时或设备检测到故障时会进入Initialize状态。 该状态为VRRP不可用状态,在此状态时设备不会对VRRP通告报文做任何处理。 |
Master | Master每隔120秒会向外发送一个免费的ARP,用于下行交换机更新mac地址表,主机学习ARP表项 Master设备会向Backup设备以每秒为周期发送VRRP通告报文,用于告知主设备的存在,Dead时间为3倍通告时间+偏移时间。 |
Backup | 当VRRP设备处于Backup状态时,它不会承担虚拟路由设备的转发工作,并定期接受Master设备的VRRP通告报文,判断Master的工作状态是否正常。 |
VRRP选举机制
有几台路由器组成的虚拟路由器又称为ARRP备份组,一个VRRP备份组逻辑上为一台路由器。VRRP备份建立后。会根据所配置的优先级来选举Master设备
keepalived架构和安装
功能:vip漂移,为vip地址所在的节点生成ipvs规则。高可用还有健康性检测
- 用户空间核心组件:
-
- vrrp stack:VIP消息通告
- checkers:监测 Real Server
- system call:实现 vrrp 协议状态转换时调用脚本的功能
- SMTP:邮件组件 IPVS wrapper:生成
- IPVS 规则 Netlink Reflector:网络接口
- WatchDog:监控进程
- 控制组件:提供keepalived.conf 的解析器,完成Keepalived配置
- IO复用器:针对网络目的而优化的自己的线程抽象
- 内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限
安装
apt update;apt install keepalived
dpkg -L keepalived
systemctl status keepalived.service
cp /usr/share/doc/keepalived/samples/keepalived.conf.sample /etc/keepalived/keepalived.conf
systemctl status keepalived.service
ll /etc/keepalived/keepalived.conf
systemctl enable --now keepalived
配置说明
/etc/keepalived/keepalived.conf
配置文件组成
- GLOBAL CONFIGURATION
Global definitions:定义邮件配置,route_id,vrrp配置,多播地址等
- VRRP CONFIGURATION
VRRP instance(s):定义每个vrrp虚拟路由器
- LVS CONFIGURATION
Virtual server group(s)
Virtual server(s):LVS集群的VS和RS
全局配置
#/etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost #keepalived 发生故障切换时邮件发送的目标邮箱,可以按行区分写
多个
root@wangxiaochun
29308620@qq
}
notification_email_from keepalived@localhost #发邮件的地址
smtp_server 127.0.0.1 #邮件服务器地址
smtp_connect_timeout 30 #邮件服务器连接timeout
router_id ka1.example #每个keepalived主机唯一标识,建议使用当前主机名,如果多节点重
名可能会影响切换脚本执行
vrrp_skip_check_adv_addr #默认会对所有通告报文都检查,会比较消耗性能,启用此配置后,如果
收到的通告报文和上一个报文是同一个路由器,则跳过检查
vrrp_strict #严格遵守VRRP协议,启用此项后以下状况将无法启动服务或工作异
常:1.无VIP地址 2.配置了单播邻居 3.在VRRP版本2中有IPv6地址,开启动此项并且没有配置
vrrp_iptables时会自动开启iptables(旧内核)或者nft(新内核)的防火墙规则,默认导致VIP无法访问,
建议不加此项配置
vrrp_garp_interval 0 #gratuitous ARP messages 报文发送延迟,0表示不延迟
vrrp_gna_interval 0 #unsolicited NA messages (不请自来)消息发送延迟
vrrp_mcast_group4 224.0.0.18 #指定组播IP地址范围:224.0.0.0到239.255.255.255,默认
值:224.0.0.18,如果配置了单播,此项失效
vrrp_iptables #此项和vrrp_strict同时开启时,则不会添加防火墙规则,如果无配置
vrrp_strict项,则无需启用此项配置,注意:新版加此项仍有iptables(旧内核)或者nft(新内核)规则
}
配置虚拟路由器
vrrp_instance <STRING> { #<String>为vrrp的实例名,一般为业务名称
配置参数
......
}
#配置参数:
state MASTER|BACKUP#当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUP,当
priority相同时,先启动的节点优先获取VIP
interface IFACE_NAME #绑定为当前VRRP虚拟路由器使用的物理接口,如:eth0,bond0,br0,可以和
VIP不在一个网卡,实现心跳功能
virtual_router_id VRID #每个虚拟路由器唯一标识,范围:0-255,每个虚拟路由器此值必须唯一,否
则服务无法启动,同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯
一
priority 100 #当前物理节点在此虚拟路由器的优先级,范围:1-254,每个keepalived主机节点此
值不同,如果多节点此值相同,则先来后到原理获取VIP
advert_int 1 #vrrp通告的时间间隔,默认1s,注意:集群内多节点此值必须相同
authentication { #认证机制
auth_type AH|PASS #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)
auth_pass <PASSWORD> #预共享密钥,仅前8位有效,同一个虚拟路由器的多个keepalived节点必
须一样
}
virtual_ipaddress { #虚拟IP,生产环境可能指定几十上百个VIP地址
<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
192.168.200.100 #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认
为/32
192.168.200.101/24 dev eth1 #指定VIP的网卡,建议和interface指令指定的网卡不在一个
网卡
192.168.200.102/24 dev eth2 label eth2:1 #指定VIP的网卡label
}
track_interface { #配置监控网络接口,一旦出现故障,则转为FAULT状态实现地址转移
eth0
eth1
…
}
[root@client keepalived]#cat keepalived.conf
! Configuration File for keepalived
global_defs {
router_id kv1
}
vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 50
priority 100
advert_int 1
virtual_ipaddress {
10.0.0.10/24 dev eth0 label etho:1
}
}
[root@client keepalived]#systemctl restart keepalived.service
本文标签: 配置文件详解协议KeepalivedVRRP
版权声明:本文标题:keepalived详解1-vrrp协议和基本配置文件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727807729a1131161.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论