高可用集群KEEPALIVED

一:Keepalived 部署

1.1:keepalived 简介

        Keepalived 是一个用 C 语言编写的路由软件,主要用于实现高可用性(HA)和负载均衡。它最初是为 Linux 虚拟服务器(LVS)项目设计的,用于管理 LVS 集群中的 IP 虚拟服务器。Keepalived 通过 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议来实现 IP 层和数据链路层的高可用性。

Keepalived 的关键特性有:

  1. 高可用性(HA:Keepalived 通过 VRRP 协议实现主备模式的故障转移。当主节点发生故障时,备份节点会自动接管虚拟 IP(VIP),确保服务的连续性。

  2. 负载均衡:Keepalived 可以与 LVS 结合使用,通过配置不同的负载均衡算法(如轮询、最少连接等)来分发流量到后端服务器。

  3. 健康检查:Keepalived 可以定期检查后端服务器的健康状态,如果发现某个服务器不可用,会将其从负载均衡池中移除

  4. 灵活的配置:Keepalived 的配置文件(通常是 ​keepalived.conf​)非常灵活,允许用户根据需要定义复杂的规则和策略。

  5. 多层检查:Keepalived 不仅可以在 IP 层进行检查,还可以在应用层进行检查,确保服务的可用性和性能。

  6. 脚本支持:Keepalived 允许用户编写自定义脚本,用于执行特定的检查或操作,增加了系统的灵活性和可扩展性。

1.2:Keepalived 架构

        1:用户空间核心组件:

(1):vrrp stack:VIP消息通告
(2):checkers:监测real server
(3):system call:实现 vrrp 协议状态转换时调用脚本的功能
(4):SMTP:邮件组件
(5):IPVS wrapper:生成IPVS规则
(6):Netlink Reflector:网络接口
(7):WatchDog:监控进程       

       2: 控制组件:提供keepalived.conf 的解析器,完成Keepalived配置。

       3:IO复用器:针对网络目的而优化的自己的线程抽象。

       4:内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限。         

1.3:Keepalived 环境准备

web1              web2

KA1                KA2

关闭防火墙及SELinux

1.4:安装keepalived

1.5:KeepAlived 配置

1.5.1:配置master端

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

将vrrp_mcast_group4 224.0.0.18前的#去掉

1.5.2:配置slave端

[root@ka2 ~]# vim /etc/keepalived/keepalived.conf

将vrrp_mcast_group4 224.0.0.18前的#去掉

1.5.3:测试

1.5.4:启用keepalived日志功能

[root@ka1 ~]# vim /etc/sysconfig/keepalived

[root@ka1 ~]# vim /etc/rsyslog.conf

二:Keepalived企业应用示例

2.1:非抢占模式 nopreempt

关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP
priority 100 #优先级高
nopreempt #非抢占模式

ka1主机配置:

KA2主机配置

非抢占模块下,如果原主机down机, VIP迁移至的新主机, 后续也发生down时,仍会将VIP迁移回原主机。

2.2:VIP单播配置

master主机配置:

#vrrp_strict #注释此参数,与vip单播模式冲突

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

在slave主机中:

[root@ka2 ~]# vim /etc/keepalived/keepalived.conf

抓包查看单播效果:

2.3:Keepalived 通知脚本配置

1:脚本的调用方法:

创建通知脚本

安装邮件发送工具:

QQ邮箱配置:

[root@ka1 ~]# vim /etc/mail.rc

发送测试邮件:

2.4: 实现IPVS的高可用性

准备两台后端主机web1,web2:

[root@web1~]# yum install httpd -y
[root@web1 ~]# echo web1 - 192.168.32.101 > /var/www/html/index.html
[root@web1~]# ip addr add 192.168.32.100/24 dev lo
[root@web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@web1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@web2 ~]# yum install httpd -y
[root@web1 ~]# echo web1 - 192.168.32.101 > /var/www/html/index.html
[root@web2 ~]# ip addr add 192.168.32.100/24 dev lo
[root@web2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@web2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@node30 ~]# yum install httpd -y
[root@node ~]# echo web1 - 192.168.32.101 > /var/www/html/index.html
[root@node ~]# ip addr add 192.168.32.100/24 dev lo
[root@node ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@node~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

2.4.1:配置keepalived:

ka1节点的配置:

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

ka2节点的配置:

[root@ka2 ~]# vim /etc/keepalived/keepalived.conf

访问测试结果:

[root@ka1 ~] for i in {1..6}; do curl 172.25.254.100; done
web1 - 192.168.32.101
web2 - 192.168.32.102
web1 - 192.168.32.101
web2 - 192.168.32.102
web1 - 192.168.32.101
web2 - 192.168.32.102

2.5:高可用性 VRRP Script

2.5.1:利用脚本实现主从角色切换

[root@ka1 ~]# vim /etc/keepalived/keepalived.conf

[root@ka1 ~]# touch /mnt/lee
[root@ka1 ~]# tail -f /var/log/messages

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值