Keepalived+LVS服务器高可用集群

问题

使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务:

  1. 路由器对外公网IP地址为202.114.106.20
  2. 路由器内网IP地址为192.168.0.254
  3. 路由器需要设置SNAT及DNAT功能
  4. LVS1调度器真实IP地址为192.168.0.10
  5. LVS2调度器真实IP地址为192.168.0.20
  6. 服务器VIP地址设置为192.168.0.253
  7. 真实Web服务器地址分别为192.168.0.1、192.168.0.2

方案

使用5台虚拟机,1台作为Linux路由器、2台作为LVS调度器、2台作为Real Server、物理机作为客户端

步骤

步骤一:配置网络环境

1)设置Web服务器网络参数

[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.255
[root@web1 ~]# vim /etc/sysctl.conf
.. ..
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web1 ~]# sysctl -p
[root@web1 ~]# systemctl restart NetworkManager

[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.253
NETMASK=255.255.255.255
[root@web2 ~]# vim /etc/sysctl.conf
.. ..
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web2 ~]# sysctl -p
[root@web2 ~]# systemctl restart NetworkManage

2)自定义Web页面

[root@web1 ~]# echo “192.168.0.1” > /var/www/html/index.html
[root@web2 ~]# echo “192.168.0.2” > /var/www/html/index.html

3)启动Web服务器软件

[root@web1 ~]# systemctl start httpd;systemctl enable httpd
[root@web2 ~]# systemctl start httpd;systemctl enable httpd

4)设置LVS调度器网络参数

[root@lvs1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.10
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@lvs1 ~]# systemctl restart NetworkManager

[root@lvs2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.20
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=202.106.0.20
[root@lvs2 ~]# systemctl restart NetworkManager

5)设置Linux路由器网络参数

[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=202.114.106.20
DNS1=202.106.0.20
[root@router ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.254
NETMASK=255.255.255.0
DNS1=202.106.0.20
[root@router ~]# systemctl restart NetworkManager

6)设置Linux路由器

[root@router ~]# sed -i ‘/ip_forward/s/0/1/’ sysctl.conf #开启路由转发
[root@router ~]# sysctl -p

步骤二:调度器安装Keepalived与ipvsadm软件

注意:两台LVS调度器执行相同的操作

安装软件

[root@lvs1 ~]# yum install -y keepalived
[root@lvs1 ~]# systemctl enable keepalived
[root@lvs1 ~]# yum install -y ipvsadm
[root@lvs2 ~]# yum install -y keepalived
[root@lvs2 ~]# systemctl enable keepalived
[root@lvs2 ~]# yum install -y ipvsadm

步骤三:部署Keepalived实现LVS-DR模式调度器的高可用

1)LVS1调度器设置Keepalived,并启动服务

[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@tarena.com.cn //设置报警收件人邮箱
}
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
smtp_connect_timeout 30
router_id lvs1 //设置路由ID号
}
vrrp_instance VI_1 {
state MASTER //主服务器为MASTER
interface eth0 //定义网络接口
virtual_router_id 50 //主辅VRID号必须一致
priority 100 //服务器优先级
advert_int 1
authentication {
auth_type pass
auth_pass forlvs //主辅服务器密码必须一致
}
virtual_ipaddress { 192.168.0.253 }
}
virtual_server 192.168.0.253 80 { //设置VIP为192.168.0.253
delay_loop 6
lb_algo wrr //设置LVS调度算法为RR
lb_kind DR //设置LVS的模式为DR
persistence_timeout 1
protocol TCP
real_server 192.168.0.1 80 {
weight 1 //设置权重为1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.0.2 80 {
weight 2 //设置权重为2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
[root@lvs1 ~]# systemctl start keepalived
[root@lvs1 ~]# ipvsadm -Ln

2)LVS2调度器设置Keepalived

[root@lvs1 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@tarena.com.cn //设置报警收件人邮箱
}
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
smtp_connect_timeout 30
router_id lvs2 //设置路由ID号
}
vrrp_instance VI_1 {
state SLAVE //从服务器为SLAVE
interface eth0 //定义网络接口
virtual_router_id 50 //主辅VRID号必须一致
priority 50 //服务器优先级
advert_int 1
authentication {
auth_type pass
auth_pass forlvs //主辅服务器密码必须一致
}
virtual_ipaddress { 192.168.0.253 }
}
virtual_server 192.168.0.253 80 { //设置VIP为192.168.0.253
delay_loop 6
lb_algo wrr //设置LVS调度算法为RR
lb_kind DR //设置LVS的模式为DR
persistence_timeout 1
protocol TCP
real_server 192.168.0.1 80 {
weight 1 //设置权重为1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.0.2 80 {
weight 2 //设置权重为2
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
[root@lvs2 ~]# systemctl start keepalived
[root@lvs2 ~]# ipvsadm -Ln

步骤四:客户端测试

客户端使用curl命令反复连接http://202.114.106.20,查看访问的页面是否会轮询到不同的后端真实服务器。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现基于 Keepalived + LVS高可用集群,您可以按照下面的步骤操作: 1. 安装 KeepalivedLVS 您需要在每个服务器上安装 KeepalivedLVSKeepalived 是一个实现 VRRP 协议的工具,用于实现服务器之间的故障切换。LVS 是一个 Linux 负载均衡器,可以将流量分发到多个后端服务器上。 2. 配置 LVS 在配置 LVS 之前,您需要先确定负载均衡器的 IP 地址和后端服务器的 IP 地址。您可以在 LVS 上配置虚拟 IP 地址,然后将请求转发到后端服务器上。 3. 配置 Keepalived 在配置 Keepalived 之前,您需要确定一个主节点和多个备份节点。主节点将拥有虚拟 IP 地址,并将请求转发到后端服务器上。如果主节点发生故障,备份节点将接管虚拟 IP 地址,并继续转发请求。 在每个节点上,您需要配置 Keepalived 的配置文件,以实现 VRRP 协议和故障切换。在主节点上,您需要将 VRRP 的优先级设置为最高,以确保它成为主节点。在备份节点上,您需要将优先级设置为较低,以确保它只在主节点发生故障时接管虚拟 IP 地址。 4. 测试集群 在完成上述步骤后,您需要测试集群是否正常工作。您可以使用 curl 或浏览器访问虚拟 IP 地址,以确保请求能够正确地转发到后端服务器上。 以上就是基于 KeepalivedLVS高可用集群实现的大致步骤。需要注意的是,配置过程可能会因环境而异,您需要根据实际情况进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值