lvs+keeplive 「爱情、让人受尽委屈。」 2021-11-11 13:18 235阅读 0赞 ## Keepalived概述 ## * 调度出现单点故障,如何解决? * Keepalived实现了高可用集群 * Keeepalived最初是为LVS设计的,专门监控各服务器节点状态 * Keepalived后来加入了VRRP功能,防止单点故障 ## Keepalived运行原理 ## * Keepalived检测每个服务器节点状态 * 服务器节点异常或工作出现故障,Keepalived将故障节点从集群系统剔除 * 故障节点恢复后,Keepalived再将其加入集群系统中 * 所有工作自动完成,无需人工干预 ## ![lvs+keepalived][lvs_keepalived] Keepalived安装 ## RHEL7中已经包含Keepalived软件包yum安装即可 yum -y install keepalived ## 配置文件解析 ## * /etc/keepalived/keepalived.conf > * 备注:配置文件中大括号" \{ " 前应有宫格,否则会出现 keepalived无法启动或ipvsadm -Ln 无信息 ! Configuration File for keepalived global_defs { notification_email { root@localhost # 设置报警收件人信箱 } notification_email_from admin@keepalived.cn # 设置发件人 smtp_server 127.0.0.1 # 定义邮箱服务器 smtp_connect_timeout 30 router_id LVS_DEVEL # 设置路由 ID vrrp_skip_check_adv_addr # vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { # 定义VRRP热备实例 state MASTER # 热备状态,MASTER表示主服务器,BACKUP表示从服务器 interface eth0 # 配置lvs对外开放的IP virtual_router_id 52 # 随便写,主辅VRID号必须一致 priority 150 # 服务器优先级,数值越大优先级越高 advert_int 1 # 通告间隔秒数(心跳频率) authentication { # 热备认证信息,每个热备组保持一致 auth_type PASS 认证类型 auth_pass 1111 # /密码字符串,主辅服务器密码必须一致, } virtual_ipaddress { 192.168.4.100 # 指定漂移地址(VIP),可以有多个 } } virtual_server 192.168.4.100 80 { # 设置 vip(地址与端口之间是空格,而不是 “ : ”) delay_loop 6 # 健康检查的间隔时间(秒) lb_algo rr # 设置调度算法 lb_kind DR # 设置lvs的工作模式 persistence_timeout 50 # 保持客户端的请求在这个时间段内全部发到同一个真实服务器 protocol TCP # 应用服务器采用的是TCP协议 real_server 192.168.4.1 80{ 第一个Web服务器节点的地址、端口 weight 1 # 设置加权轮询权重 TCP_CHECK { # 健康检查方式 connect_timeout 3 # 连接超时(秒) nb_get_retry 3 # 重试次数 delay_before_retry 3 #重试间隔 } } real_server 192.168.4.2 80{ # 第二个Web服务器节点的地址、端口 weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } ## Keepalived + LVS ## * 使用Keepalived高可用解决调度器单点失败问题 * 主、备调度器上配置lvs 、 keepalived * 主调度器异常时,Keepalived启用备用调度器 * RealServer 运行在DR模式下,修改内核参数并附加VIP 个人实验: 使用5台虚拟机,1台作为客户端主机、2台作为LVS调度器、2台作为Real Server ## **拓扑:** ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjYxNzU1Nw_size_16_color_FFFFFF_t_70] 步骤: ## 1、配置web服务器 > 1> 配置eth0 ip地址 > 2> 复制网卡配置文件配置 ifcfg-lo:0 配置VIP地址 > 3> 这里因为web1也配置与代理一样的VIP地址,所以需要修改内核参数,保证VIP地址不会与调度器冲突 > 4>重启网络服务,设置防火墙与SELinux > 5>安装并启动httpd 2、配置调度器(不配置VIP,有keepalvied自动配置) > 1> 配置eth0 ip地址 > 2> 重启网络服务,设置防火墙与SELinux > 3> 安装ipvsadm ,若已存在,则需ipvsadm -C 清空规则 > 4> 安装Keepalived ,修改配置(见配置文件处) 3、客户端测试 > 1> 停止其中一台httpd服务 > 2> 在调度器端 ipvsam -Ln 查看状态 > 3> shutdown其中一台服务器 > 4> 在调度器端 ip addr show eth0 查看是否获取到了VIP > 5> 客户端使用curl命令反复连接http://192.168.4.5,查看访问的页面是否会轮询到不同的后端真实服务器。 > **名词解释:** > **VRRP**: 虚拟冗余路由,IETF公共标准 > **HSRP**:热备份路由协议,cisco专有。 > **lvs + keepalived双主配置** > 通过2个VIP让2台LVS主机均处于工作状态,就是一边为MARSTER时,对应的互备配置就是BACKUP,互为主备结构,提高资源利用率! [lvs_keepalived]: /images/20211109/958eea77999f4e78b01ee9468ffe2e25.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjYxNzU1Nw_size_16_color_FFFFFF_t_70]: /images/20211109/e84323012d244abf9e0825c087c084be.png
还没有评论,来说两句吧...