以下内容全是重点 请仔细阅读
以下内容全是重点 请仔细阅读
Keepalived 是一个用于实现高可用性。它主要用于确保服务的连续性,防止单点故障,通常应用于负载均衡和故障转移场景。
特别适合需要快速故障转移和负载均衡的网络环境
2.健康检查
Keepalived定期检查本地和远程服务的健康状态。
支持多种检查方式,如TCP、HTTP、SSL等。
如果检测到服务不可用,会触发故障转移。
3.负载均衡:
当与LVS(Linux Virtual Server)结合使用时,Keepalived可以管理LVS的配置。
支持多种负载均衡算法,如轮询、加权轮询、最少连接等。
4.配置管理
通过配置文件定义VRRP实例、虚拟IP、健康检查等参数。
支持动态配置更新,无需重启服务。
5.故障转移
当主服务器失效时,备用服务器会自动接管虚拟IP。
转移过程快速,通常在几秒内完成,对用户几乎无感知。
过这些机制,Keepalived能够有效地提供高可用性和负载均衡服务,确保系统的稳定性和可靠性。
主 192.168.192.100 虚拟漂移地址 192.168.192.200
备 192.168.192.111 虚拟漂移地址 192.168.192.200
第一台Web服务器 192.168.192.112
第二台Web服务器 192.168.192.114
安装所需组件
yum -y install gcc openssl-devel libnfnetlink-devel libnl libnl3-devel
yum install -y keepalived ipvsadm
编辑配置文件
以下配置都是重点 大家可以一一比对
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
! 设置通知邮件的接收地址
notification_email_from Alexandre.Cassen@firewall.loc ! 设置通知邮件的发送地址
smtp_server 192.168.200.1 ! 设置SMTP服务器地址
smtp_connect_timeout 30 ! 设置SMTP连接超时时间(秒)
router_id R1 ! 设置路由器标识
}
vrrp_instance VI_1 {
state MASTER ! 设置初始状态为主节点
interface ens33 ! 设置VRRP实例绑定的网络接口
virtual_router_id 2 ! 设置虚拟路由器ID
priority 100 ! 设置优先级
advert_int 1 ! 设置VRRP广播间隔(秒)
authentication {
auth_type PASS ! 设置认证类型为密码
auth_pass 1111 ! 设置认证密码
}
virtual_ipaddress {
192.168.192.200 ! 设置虚拟IP地址
}
}
virtual_server 192.168.192.200 80 {
delay_loop 6 ! 设置健康检查间隔(秒)
lb_algo rr ! 设置负载均衡算法为轮询
lb_kind DR ! 设置LVS模式为直接路由
nat_mask 255.255.255.0 ! 设置NAT掩码
! persistence_timeout 50 ! 会话保持时间(秒),当前被注释
protocol TCP ! 设置协议为TCP
real_server 192.168.192.112 80 {
weight 1 ! 设置服务器权重
TCP_CHECK {
connect_port 80 ! 设置健康检查连接的端口
connect_timeout 3 ! 设置连接超时时间(秒)
nb_get_retry 3 ! 设置重试次数
delay_before_retry 3 ! 设置重试间隔(秒)
}
}
real_server 192.168.192.114 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
keepalived会定期对real server进行健康检查,如果检查失败,它会尝试重新连接。如果在指定的重试次数内都无法成功连接**,keepalived会将该服务器标记为不可用,并将流量转发到其他可用的服务器。**
systemctl start keepalived #启动服务
systemctl enable keepalived #开机自启
systemctl status keepalived
安装所需组件
yum -y install gcc openssl-devel libnfnetlink-devel libnl libnl3-devel
yum install -y keepalived ipvsadm
编辑配置文件
根据行号来修改所需的信息 我都列出来 大家自行寻找出来修改
vim /etc/keepalived/keepalived.conf
12 router_id R2
13 }
14
15 vrrp_instance VI_1 {
16 state BACKUP
17 interface ens33
18 virtual_router_id 2
19 priority 95
20 advert_int 1
21 authentication {
22 auth_type PASS
23 auth_pass 1111
24 }
25 virtual_ipaddress {
26 192.168.192.200
27 }
28 }
30 virtual_server 192.168.192.200 80 {
31 delay_loop 6
32 lb_algo rr
33 lb_kind DR
34 nat_mask 255.255.255.0
35 # persistence_timeout 50
36 protocol TCP
37
38 real_server 192.168.192.112 80 {
39 weight 1
40 TCP_CHECK{
41 connetc_port 80
42 connect_timeout 3
43 nb_get_retry 3
44 delay_before_retry 3
45 }
46
47 real_server 192.168.192.114 80 {
48 weight 1
49 TCP_CHECK{
50 connetc_port 80
51 connect_timeout 3
52 nb_get_retry 3
53 delay_before_retry 3
54 }
55 }
56 }
57 }
systemctl start keepalived #启动服务
systemctl enable keepalived #开机自启
查看是否出错
systemctl status keepalived
在主服务器上查看
[root@localhost ~]# ip a sh dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:af:b6:81 brd ff:ff:ff:ff:ff:ff
inet 192.168.192.100/24 brd 192.168.192.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.192.200/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feaf:b681/64 scope link
valid_lft forever preferred_lft forever
备服务器查看
[root@localhost ~]# ip a sh dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:b2:65:cb brd ff:ff:ff:ff:ff:ff
inet 192.168.192.111/24 brd 192.168.192.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feb2:65cb/64 scope link
valid_lft forever preferred_lft forever
此刻我们关闭终止主服务器keepalived
在查看
主服务器
备服务器
两台Web服务器配置
yum install -y httpd
echo 111111 > /var/www/html/index.html
systemctl start httpd
curl 127.0.0.1
cd /etc/sysconfig/network-scripts/
cp -p ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0 #指定虚拟接口的名称。
IPADDR=192.168.192.200 #设置此接口的 IP 地址。
NETMASK=255.255.255.255 #设置网络掩码(这是 CIDR 表示法中的 /32)
NETWORK=192.168.192.200 #指定网络地址。
BROADCAST=192.168.192.200 #设置广播地址。
ONBOOT=yes #确保在启动时启动接口
NAME=loopback
ifup ifcfg-lo:0
route add -host 192.168.192.200 dev lo:0
vim /etc/rc.local
/sbin/route add -host 192.168.192.200 dev lo:0
此命令添加路由,将 IP 192.168.192.200 的流量定向到环回接口 (lo:0)。这通常用于您希望系统将特定 IP 地址视为本地地址的配置,即使它实际上并未在任何物理接口上配置。
vim /etc/sysctl.conf
加入以下信息
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce =2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce =2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce =2
sysctl -p
这些设置主要用于提高网络安全性和性能,特别是在多网卡环境或负载均衡场景中。它们可以帮助减少不必要的ARP流量,防止ARP欺骗,并确保ARP请求只由适当的网络接口处理。
在本机电脑查看
"成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。