高可用-keepalived

什么是高可用?

“高可用性”(High Availability) 通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。

高可用的原理?

一条心跳线同时连接两台服务器,若当中的一台服务器宕机了,备用服务器会出来顶替宕机的服务器继续运行。

什么是keepalived?

keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

集群:集群的概念是和单台服务器相对应的,简单的来说,集群就是部署多台服务器协同完成一项工作。

keepalived的工作原理?

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议。
即将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip。(该路由器所在局域网内其他机器的默认路由为该vip),master会发送组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。

keepalived的故障切换工作原理?

在两台负载均衡调度器上安装keepalived以实现高可用的目的。
两个调度器之间通过VRRP协议来保证高可用性,当一台调度器宕机时,另一台备用的立即接替原主机服务,当主机被修复之后又将服务返回给主机。
在主节点正常工作的时候,会不断地向被节点广播心跳消息,用以告诉备节点自己还活着,当主节点发生故障的时候,备节点就无法收到主节点广播的消息,即可判断主节点发生故障,进而调用自身的接管程序,接管主节点的IP资源及服务。而当主节点被修复时,备节点会释放主节点故障时自己所接管的IP资源和服务,恢复到原来备用的角色。

keepalived的核心三要素?

core模块:主核心,负责master的启动,全局配置文件的解析。
check模块:负责服务器的健康检查。
VRRP协议:虚拟路由冗余协议,通过该协议实现高可用。

高可用keepalived实验拓扑图

拓扑图

实验

192.168.139.123 vip
192.168.139.100 dr1
192.168.139.101 dr2
192.168.139.201 web1
192.168.139.202 web2

两台web服务器
yum install -y nginx
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
ifconfig lo:0 192.168.139.123/32

测试两台web服务器页面是否正常。


测试两台rs

两台dr服务器,安装keepalived

yum install -y keepalived

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

vrrp_instance VI_1 {              
    state MASTER                        另一台服务器dr2改为BUCKUP
    interface ens33                     发送心跳网卡dip
    virtual_router_id 51                虚拟路由标识,master,backup必须相同
    priority 100                        优先级,高的是master;另一台服务器dr2改为50
    advert_int 1                        心跳发送间隔
    authentication {                    认证方式
        auth_type PASS
        auth_pass 1111
    }   
    virtual_ipaddress {                 vip/子网掩码 dev选项 配置网卡接口
        192.168.139.123/24 dev ens37
    }   
}   

virtual_server 192.168.139.123 80 {     LVS配置,虚拟VIP地址和端口
    delay_loop 3                        健康检查时间间隔
    lb_algo rr                          LVS调度算法 rr/wrr/lc/wlc/lblc
    lb_kind DR                          LVS集群模式  NAT/DR/TUN
    protocol TCP                        监控服务的协议类型
    
    real_server 192.168.139.201 80 {    real_server地址和端口
        weight 1                        LVS权重
        TCP_CHECK {                     健康检查方式 TCP_CHECK/SSL_GET/HTTP_GET
            connect_timeout 3           超时时间 3秒
            }
        }   
    real_server 192.168.139.202 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            }

        }
}
启动keepalived
systemctl restart keepalived.service

测试两台dr是否实现高可用
关闭dr1的keepalived服务
查看vip是否跳到dr2上

实验结果

访问123

你可能感兴趣的:(高可用-keepalived)