Keepalived 部署

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

Keepalived 的关键特性有:

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

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

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

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

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

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

二、Keepalived 架构

1、用户空间核心组件:

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

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

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

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

web1web2
KA1 KA2

关闭防火墙及SELinux

三、KeepAlived 配置
配置master端

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

vrrp_mcast_group4 224.0.0.18前的#去掉

配置slave

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

vrrp_mcast_group4 224.0.0.18前的#去掉

测试

启用keepalived日志功能

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

四、KeepAlived 应用示例

非抢占模式nopreempt

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

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

vip单播模式

master主机配置:

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

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

在slave主机中:

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

抓包

Keepalived通知脚本配置

创建

邮件发送装置

QQ邮箱配置

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

测试

实现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

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

高可用性VRRP Script

用脚本实现主从切换

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

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

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LVS(Linux Virtual Server)是一个开源的高性能、可扩展的网络负载均衡软件,而keepalived是一个基于VRRP协议实现的高可用性解决方案。它们结合使用可以实现高可用的负载均衡服务。 以下是LVS+keepalived部署过程: 1. 安装LVS 在LVS的主机上安装LVS软件,可以使用以下命令: ``` yum install ipvsadm -y ``` 2. 配置LVS 配置LVS的主要步骤如下: (1)配置LVS虚拟服务器 在LVS主机上创建一个虚拟服务器(Virtual Server),可以使用以下命令: ``` ipvsadm -A -t VIP:PORT -s sh ``` 其中,VIP是虚拟IP地址,PORT是虚拟端口号。 (2)向LVS虚拟服务器添加真实服务器 将真实服务器添加到LVS虚拟服务器中,可以使用以下命令: ``` ipvsadm -a -t VIP:PORT -r REAL_SERVER_IP:PORT -g ``` 其中,REAL_SERVER_IP是真实服务器的IP地址,PORT是真实服务器的端口号。 (3)配置LVS调度算法 LVS支持多种调度算法,如轮询(Round Robin)、加权轮询(Weighted Round Robin)、最少连接数(Least Connections)等。可以使用以下命令配置LVS调度算法: ``` ipvsadm -E -t VIP:PORT -s SCHEDULER_NAME ``` 其中,SCHEDULER_NAME是调度算法的名称。 (4)保存LVS配置 在LVS主机上保存LVS配置,可以使用以下命令: ``` ipvsadm-save > /etc/sysconfig/ipvsadm ``` 3. 配置keepalived 配置keepalived的主要步骤如下: (1)安装keepalived 在LVS主机上安装keepalived软件,可以使用以下命令: ``` yum install keepalived -y ``` (2)配置keepalived 在LVS主机上创建keepalived配置文件/etc/keepalived/keepalived.conf,配置文件的内容如下: ``` global_defs { router_id LVS_DEMO } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { VIP/24 dev eth0 } } ``` 其中,VIP是虚拟IP地址。 (3)启动keepalived 使用以下命令启动keepalived服务: ``` systemctl start keepalived ``` 4. 测试LVS+keepalived 在浏览器中输入VIP地址和端口号,如果能够正常访问真实服务器,则LVS+keepalived部署成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值