LVS+keepalived部署

1 Keepalived是什么?

Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。

后来Keepalived又加入了VRRP的功能,VRRP(VritrualRouterRedundancyProtocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此Keepalvied一方面具有服务器状态检测和故障隔离功能,另外一方面也有HAcluster功能。

健康检查和失败切换是keepalived的两大核心功能。所谓的健康检查,就是采用tcp三次握手,icmp请求,http请求,udp echo请求等方式对负载均衡器后面的实际的服务器(通常是承载真实业务的服务器)进行保活;而失败切换主要是应用于配置了主备模式的负载均衡器,利用VRRP维持主备负载均衡器的心跳,当主负载均衡器出现问题时,由备负载均衡器承载对应的业务,从而在最大限度上减少流量损失,并提供服务的稳定性。

在上篇文章的基础上:
server2主机停止apache服务:systemctl stop httpd

真机测试:

在这里插入图片描述
lvs架构中,不管是NAT模式还是DR模式,当后端的rs宕机后,调度器依然会把请求转发到宕掉的rs上,这样肯定是不是想要的结果。其实,keepalived加入lvs就可以解决该问题,它不仅有高可用的功能,还有负载均衡的功能。

某台RSdown了 — 健康检测
– LVS本身down了—LVS冗余
• Keepalived – LVS管理软件
– 健康检测:支持4/7监测;
– 主备冗余:采用VRRP协议的HeartBeat;

2 Keepalived的部署

2.1 实验的环境

完整的keepalived+LVS架构需要有2台调度器分别安装keepalived来实现高可用,提供调度服务的只需要1台,另外一台作为备用。

调度器:server1(主)、server4(备)
RS:server2、server3

2.2 配置Keepalievd master服务器

(1)在server1安装 keepalived.软件:yum install -y keepalived.x86_64
在这里插入图片描述
(2)编辑keepalived配置文件: /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs { ##全局定义块
   notification_email { ##邮件通知
      root@localhost
   }
   notification_email_from keepalived@localhost ##设置邮件的发送地址 
   smtp_server 127.0.0.1 ##设置 smtp server 地址 
   smtp_connect_timeout 30 ##设置连接 smtp 服务器超时时间
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
#   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER  ##keepalived主机,此状态是由 priority 的值来决定的
    interface eth0  ##HA 监测网络接口 
    virtual_router_id 63  ##主、备机的 virtual_router_id 必须相同,取值 0-255
    priority 100  ##主机的优先级,主机优先级一定要大于备机 
    advert_int 1  ##主备之间的通告间隔秒数
    authentication {
        auth_type PASS  #设置验证类型,主要有 PASS 和 AH 两种
        auth_pass 1111  #设置验证类型,主要有 PASS 和 AH 两种
    }
    virtual_ipaddress {  ##指定漂移地址(VIP),即切换到MASTER时,这些IP会被添加,切换到BACKUP时,这些IP会被删除
        172.25.12.100
    }
}
## 虚拟服务配置 
virtual_server 172.25.12.100 80 { #定义虚拟服务器 
    delay_loop 6 #定义虚拟服务器
    lb_algo rr   #lvs调度算法,这里使用轮叫 
    lb_kind DR  #LVS 是用 DR 模式
#    persistence_timeout 50
    protocol TCP  #指定转发协议类型 
 #配置服务节点 172.25.12.2
    real_server 172.25.12.2 80 {
        weight 1 ##默认为1,0为失效
       TCP_CHECK {  ##TCP方式的健康检查,realserve 的状态检测设置部分,单位是秒
            connect_timeout 3 #3秒无响应超时
            nb_get_retry 3 #重试次数 
            delay_before_retry 3 #重试间隔 
        }
    }
     #配置服务节点 172.25.12.3
    real_server 172.25.12.3 80 {
        weight 1
       TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

(3)重启服务:systemctl restart keepalived.service

  • 读取日志文件:cat /var/log/messages,可以看到server1为主 keepalived

在这里插入图片描述
(6)测试:某台RSdown了,健康监测

  • server2主机停止apache服务:systemctl stop httpd,关于server2的ipvsadm策略自动清除

在这里插入图片描述

  • 当server2服务器down时发送邮件server1

在这里插入图片描述

  • 此时访问VIP时只有server3提供服务

在这里插入图片描述

  • 重启server2:systemctl restart httpd,server1会收到服务启动的邮件,同时server2的ipvsadm策略自动添加

在这里插入图片描述

  • 当没有服务宕机时,在真机器中测试的结果,发现测试页轮循输出

在这里插入图片描述

2.3 配置Keepalived BACKUP服务器

(1)在server4安装keepalived软件:yum install -y keepalived.x86_64

(2)编辑server4中的 keepalived配置文件: /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
      root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
#   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP  ##keepalived备机
    interface eth0
    virtual_router_id 63
    priority 50  ##备机的优先级必须低于master机的优先级,当主机出问题时自动切换到备份机;一旦keepalived主机恢复服务将从备机切换到主机
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.12.100
    }
}
virtual_server 172.25.12.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
#    persistence_timeout 50
    protocol TCP

    real_server 172.25.12.2 80 {
        weight 1
       TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.25.12.3 80 {
        weight 1
       TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

(3)启动keepalived服务:systemctl start keepalived.service

  • 读取日志文件:cat /var/log/messages,server4作为辅助keepalived

在这里插入图片描述

2.4 Keepalived双机热备效果测试

双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器

  • 停止server1的Keepalived服务:systemctl stop keepalived.service
  • 此时VIP 自动添加到server4,lvs的服务由server4提供

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 重启server1的Keepalived服务:systemctl restarted keepalived.service,此时lvs的服务将漂移到server1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
LVS(Linux Virtual Server)是一个开源的高性能、可扩展的网络负载均衡软件,而keepalived是一个基于VRRP协议实现的高可用性解决方案。它们结合使用可以实现高可用的负载均衡服务。 以下是LVS+keepalived部署过程: 1. 安装LVSLVS的主机上安装LVS软件,可以使用以下命令: ``` yum install ipvsadm -y ``` 2. 配置LVS 配置LVS的主要步骤如下: (1)配置LVS虚拟服务器 在LVS主机上创建一个虚拟服务器(Virtual Server),可以使用以下命令: ``` ipvsadm -A -t VIP:PORT -s sh ``` 其中,VIP是虚拟IP地址,PORT是虚拟端口号。 (2)向LVS虚拟服务器添加真实服务器 将真实服务器添加到LVS虚拟服务器中,可以使用以下命令: ``` ipvsadm -a -t VIP:PORT -r REAL_SERVER_IP:PORT -g ``` 其中,REAL_SERVER_IP是真实服务器的IP地址,PORT是真实服务器的端口号。 (3)配置LVS调度算法 LVS支持多种调度算法,如轮询(Round Robin)、加权轮询(Weighted Round Robin)、最少连接数(Least Connections)等。可以使用以下命令配置LVS调度算法: ``` ipvsadm -E -t VIP:PORT -s SCHEDULER_NAME ``` 其中,SCHEDULER_NAME是调度算法的名称。 (4)保存LVS配置 在LVS主机上保存LVS配置,可以使用以下命令: ``` ipvsadm-save > /etc/sysconfig/ipvsadm ``` 3. 配置keepalived 配置keepalived的主要步骤如下: (1)安装keepalivedLVS主机上安装keepalived软件,可以使用以下命令: ``` yum install keepalived -y ``` (2)配置keepalivedLVS主机上创建keepalived配置文件/etc/keepalived/keepalived.conf,配置文件的内容如下: ``` global_defs { router_id LVS_DEMO } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { VIP/24 dev eth0 } } ``` 其中,VIP是虚拟IP地址。 (3)启动keepalived 使用以下命令启动keepalived服务: ``` systemctl start keepalived ``` 4. 测试LVS+keepalived 在浏览器中输入VIP地址和端口号,如果能够正常访问真实服务器,则LVS+keepalived部署成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值