简介
Keepalived是一个用于Linux环境的路由软件,具有健康检查功能以及可用于实现高可用性(High Availability, HA)的功能。它主要支持两种协议:VRRP (Virtual Router Redundancy Protocol) 和 LVS (Linux Virtual Server)。Keepalived的项目源代码托管在Github上。
VRRP (Virtual Router Redundancy Protocol): VRRP是一个网络协议,允许多台主机共享一个IP地址,形成一个虚拟路由器。它的主要目标是提高网络的冗余性和可用性。在一个VRRP集群中,会有一个主节点和多个备份节点。如果主节点出现故障,备份节点会自动接管,保证服务的连续性。Keepalived可以创建和管理VRRP路由器。
LVS (Linux Virtual Server): LVS是一个负载均衡解冑方案,它可以将网络流量分发到多台服务器,以提高服务的可扩展性和可用性。Keepalived包含了一个健康检查框架,可以检查后端服务器的状态,并根据状态动态调整流量的分发。
Keepalived的配置是通过一个文本文件进行的,这个文件定义了VRRP和/或LVS的设置。配置文件中可以设置检查间隔、故障切换策略、后端服务器的IP地址和端口等信息。
Keepalived还包含一些高级功能,如对BGP (Border Gateway Protocol) 的支持,以及对SNMP (Simple Network Management Protocol) 的支持。
总的来说,Keepalived是一个强大的工具,可以用来提高服务的可用性和可扩展性,特别是在需要处理大量网络流量的场景下。
环境
一台 主服务器 centos7 192.168.254.1
一台 从服务器 centos7 192.168.254.2
两台服务器都安装web服务,两个人的漂移地址为:192.168.254.222
漂移地址就是上面的多台主机一个共享地址,谁优先级高谁就越靠上,如果上面的服务器不行了,就自动往下自动继承ip 可以达到1秒直接切换服务器
配置主服务器
先安装http服务,等会随便往页面里写点东西,区分开主服务器,在现实中我们备份服务器和主服务器上的东西要一模一样才行,让用户察觉不到,即使单个服务器坏了,备用的立马上去继续顶住,防止单点故障
yum -y install httpd
systemctl enable httpd
systemctl start httpd
echo '<h1>192.168.254.1 主服务器' > /var/www/html/index.html
现在我们使用的是服务器自己网络接口的ip访问的网站
yum -y install ipvsadm keepalived
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.conf
写入
global_defs {
router_id tarro1
}
vrrp_instance t1 {
state MASTER
interface ens33
virtual_router_id 1
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123123
}
virtual_ipaddress {
192.168.254.222
}
}
systemctl start keepalived
systemctl enable keepalived
ip a 就能看到漂移地址了
配置从服务器
yum -y install httpd
systemctl start httpd
systemctl enable httpd
echo '<h1>192.168.254.2 从服务器' > /var/www/html/index.html
yum -y install ipvsadm keepalived
mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
vim /etc/keepalived/keepalived.conf
写入
global_defs {
router_id tarro2
}
vrrp_instance t1 {
state BACKUP
interface ens33
virtual_router_id 1
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123123
}
virtual_ipaddress {
192.168.254.222
}
}
这个测试心跳1为1秒,如果1秒内主服务器没有回应,那么副服务器立马替上主服务器
这个从服务器优先级为90 没有主的100大
systemctl start keepalived
systemctl enable keepalived
由于是从的,ip a 不会看到地址,只有在主服务不行的时候从的才会有地址
测试
现在访问网站直接访问漂移地址
默认是最大的为主的,如果主的不行了则副的替上
现在访问222是主服务器,现在我们将主服务器关机
就1秒就替换上了,速度非常快
现在再将主服务器开机
立马自动又回来了,我们配置好了之后,这全部都是自动化的了