实验拓扑图:
实验原理:
Keepalived 是基于 LVS ,并与 LVS 高度融合的
LVS和keepalived的关系:lvs起的是负载均衡功能,而keepalived则是高可用(热
备)的支持,两者均可以单独使用。
keeaplived可以在主从都运行良好的情况下检测主备状态,当主服务器down掉,
或者进程意外终止时,先将VIP绑定到备服务器上,然后通过指定的脚本来提升备
服务器的应用层面的角色定位。
实验环境:
RealServer1 CentOS7 192.168.81.57
RealServer2 CentOS7 192.168.81.58
K&L Master CentOS7 192.168.81.59
K&L Master CentOS7 192.168.81.60
$VIP 192.168.81.150
实验过程:
一、在RealServer搭建网站(为方便验证。此处使用服务器IP地址)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# echo '192.168.81.57'>/var/www/html/index.html
浏览器访问验证
[root@localhost~]# ifconfig lo:0 192.168.81.150 netmask 255.255.255.255 broadcast 192.168.81.150
[root@localhost ~]# /sbin/route add -host 192.168.81.150 dev lo:0
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# sysctl –p
二、配置Keepalived & Lvs服务器
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install gcc gcc-c++ make openssl* libtool-devel* popt-devel*
[root@localhost ~]# ls(上传lvs和keepalived安装包)
ipvsadm-1.26-4.el6.x86_64.rpm keepalived-1.2.19.tar.gz lvs.sh
----------------K & L------------------------
[root@localhost ~]# yum -y install gcc gcc-c++ make openssl* libtool-devel* popt-devel* net-tools
[root@localhost ~]# yum -y install ipvsadm-1.26-4.el6.x86_64.rpm
[root@localhost ~]# tar -xzvf keepalived-1.2.19.tar.gz
[root@localhost ~]# cd keepalived-1.2.19
[root@localhost ~]# ./configure
[root@localhost ~]# make && make install
[root@localhost ~]# vim /usr/local/etc/keepalived/keepalived.conf
------------Master----------------
vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 88
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.81.150/24
}
}
virtual_server 192.168.81.150 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
# persistence_timeout 50
protocol TCP
real_server 192.168.81.57 80 {
weight 2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.81.58 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
------------Backup----------------
vrrp_instance VI_1 {
state BACKUP
interface eno16777736
virtual_router_id 88
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.81.150/24
}
}
virtual_server 192.168.81.150 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
# persistence_timeout 50
protocol TCP
real_server 192.168.81.57 80 {
weight 2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.81.58 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
------------------------------------
[root@localhost keepalived-1.2.19]# keepalived -D -f /usr/local/etc/keepalived/keepalived.conf
[root@localhost keepalived-1.2.19]# ip a(VIP只出现在MASTER上)
三、检测结果
测试负载平衡(这里在IP地址为192.168.81.12的虚拟机进行测试.57/58出现的频率为2:3)
关闭MASTER的KEEPALIVE,再查看IP是否漂移
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!