目录
前提准备:
keepalived1:
keepalived2:
web1:
web2:
keepalived介绍
功能特点
工作原理
应用场景
前提准备:
- 准备4台centos,其中两台为keepalived,两台为web
- keepalived1:192.168.180.62,gw(网关):192.168.180.250,安装keepalived+ipvsadm
- keepalived2:192.168.180.110,gw(网关):192.168.180.250, 安装keepalived+ipvsadm
- web1:192.168.180.120,gw(网关):192.168.180.250,安装httpd
- web2:192.168.180.130,gw(网关):192.168.180.250,安装httpd
- 有gw(网关)标识的,需要去修改网关
- 关闭所有防火墙
- 可以使用本地yum源本地yum源https://blog.csdn.net/m0_68472908/article/details/143857709?spm=1001.2014.3001.5501
keepalived1:
1. 安装软件
yum install -y keepalived ipvsadm
2. 关闭防火墙
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
3. 配置主服务器
vim /etc/keepalived/keepalived.conf
4. 开启keepalived
systemctl start keepalived.service
5. 配置负载分担策略
ipvsadm -Cipvsadm -A -t 192.168.180.250:80 -s rripvsadm -a -t 192.168.180.250:80 -r 192.168.180.120 -g -w 1ipvsadm -a -t 192.168.180.250:80 -r 192.168.180.130 -g -w 1ipvsadm-savesystemctl enable ipvsadm
6. 配置vip
cd /etc/sysconfig/network-scripts/cp ifcfg-ens33 ifcfg-ens33:0vim ifcfg-ens33:0
ifup ens33:0systemctl restart network
7. 调整/proc响应参数
vim /etc/sysctl.confnet.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0net.ipv4.conf.ens33.send_redirects = 0
#刷新
sysctl -p
keepalived2:
1. 安装软件
yum install -y keepalived ipvsadm
2. 关闭防火墙
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
3. 配置备用服务器-从主上复制过来,修改参数
scp 192.168.180.62:/etc/keepalived/keepalived.conf /etc/keepalived/
4. 开启
systemctl start keepalived
5. 查看ipvsadm有没有同步
ipvsadm -ln
systemctl enable ipvsadm
6. 从主上同步vip配置
scp 192.168.180.62:/etc/sysconfig/network-scripts/ifcfg-ens33:0 /etc/sysconfig/network-scripts/
7. 从主上同步/proc响应参数
scp 192.168.180.62:/etc/sysctl.conf /etc/
#刷新
sysctl -p
web1:
1. 安装软件
yum install -y httpd
2. 关闭防火墙
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
3. 配置vip
cd /etc/sysconfig/network-scripts/cp ifcfg-lo ifcfg-lo:0vim ifcfg-lo:0
ifup lo:0systemctl restart network
4. 配置路由
route add -host 192.168.180.250 dev lo:0vim /etc/rc.local
systemctl restart network
5. 配置/proc响应参数
vim /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2net.ipv4.conf.default.arp_ignore = 1net.ipv4.conf.default.arp_announce = 2net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2
6. 创建测试页面
echo "11111111111" > /var/www/html/index.htmlsystemctl start httpd
web2:
1. 安装软件
yum install -y httpd
2. 关闭防火墙
systemctl stop firewalldsystemctl disable firewalldsetenforce 0
3. 从主上同步vip
scp 192.168.180.120:/etc/sysconfig/network-scripts/ifcfg-lo:0 /etc/sysconfig/network-scripts/ifup lo:0
4. 从主上同步路由
route add -host 192.168.180.250 dev lo:0scp 192.168.180.120:/etc/rc.local /etc/
systemctl restart network
5. 从主上同步/proc响应参数
scp 192.168.180.120:/etc/sysctl.conf /etc/sysctl -p
6. 创建测试页面
echo "2222222222222" > /var/www/html/index.htmlsystemctl start httpd
7. 在keepalived上访问测试
8. 在真机上访问测试
keepalived介绍
Keepalived 是一款基于 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)的开源软件,主要用于实现服务器的高可用性(High Availability,HA)和负载均衡
功能特点
- 高可用性实现:通过 VRRP 协议,Keepalived 可以监控服务器的状态。当主服务器出现故障时,它能自动将服务切换到备用服务器上,确保服务的连续性,减少停机时间。
- 健康检查机制:支持多种健康检查方式,如通过发送 HTTP 请求、执行脚本等方式来检测服务器的运行状态。如果服务器出现异常,Keepalived 会及时将其从服务池中移除,避免将请求发送到故障服务器上。
- 负载均衡功能:结合 Linux 虚拟服务器(Linux Virtual Server,LVS)技术,Keepalived 可以实现基于 IP 的负载均衡,将用户请求均匀地分发到多个服务器上,提高系统的整体性能和处理能力。
- 可扩展性和灵活性:支持多种配置选项和参数调整,可以根据不同的应用场景和需求进行定制化配置。同时,它还可以与其他开源软件和工具集成,如 Nginx、Haproxy 等,进一步扩展其功能。
工作原理
- VRRP 协议基础:VRRP 协议通过在一组路由器之间创建一个虚拟路由器来实现高可用性。在这个虚拟路由器中,有一个主路由器负责处理所有的网络流量,其他路由器作为备用路由器。当主路由器出现故障时,备用路由器会通过选举机制选出一个新的主路由器,继续承担网络流量的处理任务。
- Keepalived 的工作流程:Keepalived 在服务器上运行后,会根据配置文件中的设置,定期发送 VRRP 通告消息来宣告自己的存在和状态。其他运行 Keepalived 的服务器会接收这些通告消息,并根据优先级等参数来确定当前的主服务器。同时,Keepalived 还会监控服务器的健康状态,如果发现主服务器出现故障,会立即触发选举过程,将备用服务器提升为主服务器,确保服务的不间断运行。
应用场景
- Web 服务高可用:在 Web 应用中,Keepalived 可以确保 Web 服务器集群的高可用性。当一台 Web 服务器出现故障时,Keepalived 会自动将用户请求切换到其他正常的服务器上,保证网站的正常访问。
- 数据库服务高可用:对于数据库服务器,Keepalived 可以实现主备切换。当主数据库服务器出现故障时,备用数据库服务器会自动接管服务,确保数据库的连续性和数据的一致性。
- 邮件服务高可用:在邮件系统中,Keepalived 可以保证邮件服务器的高可用性。当主邮件服务器出现故障时,备用邮件服务器会及时接替工作,确保邮件的正常收发。