keepalived + lvs集群

本文介绍Keepalived服务软件及其利用VRRP协议保障集群高可用性的原理与配置步骤。通过详细配置示例展示了如何搭建包含Master与Backup节点的Keepalived集群,并实现负载均衡与故障切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.keepalived是什么?

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

 2.keepalived 工作原理

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

 **将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master**  keepalived主要有三个模块,分别是**core、check(后端web服务器的检查)和vrrp**。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

 

思路:

1.设置rs(web1和web2)的配置 安装vip:10.18.43.73  lo 

为了让vip发包出去
        # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  
忽略arp响应 
        # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

 

2.dr_1  dr_2

两块网卡  两台机器上的两块网卡名称必须一样

 路由条目的顺序必须一样 区分谁当dip 

 谁的路由条目在上面 谁当dip dip要固定下来  20  21  ens33

 

3.安装ipvsadm

安装:

一:准备工作:

10.18.43.86   client
10.18.43.87   nginx_dr1
10.18.43.79   nginx_dr2
10.18.43.88   web1
10.18.43.89   web2


把五台机器都作:
1.关闭防火墙设置开机不启动:

# chkconfig firewalld off
#systemctl  stop firewalld

2.关闭SElinux

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0

3.dr1和dr2下载keepalived

#yum -y install keepalived

二。设置:


1.nginx_dr1
修改配置文件:

# vim /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 Director1        //两边是一样的 #备份调度器的主机名    名字一样就可以
        }

vrrp_instance VI_1 {
        state MASTER             //另外一台机器是BACKUP    
        interface eth0            //心跳网卡    最好是赵一块独立的网卡作心跳网卡
    virtual_router_id 51    //   虚拟路由的ID一定要和集群内的其他主机相同
    priority 150                //优先级      比主调度器低一些,最少差五十
    advert_int 1                 //检查间隔,单位秒    
    authentication {
        auth_type PASS
        auth_pass 1111    密钥需要和集群内的主服务器相同
        }
        virtual_ipaddress {
                10.18.43.73/24 dev eth1
           }
        }

virtual_server 10.18.43.73  80 {     //vip
        delay_loop 3              //服务论询的时间间隔
      lb_algo rr                                                //LVS 调度算法
      lb_kind DR                                                // LVS 集群模式
        protocol TCP
        real_server 10.18.43.88  80 {    //web1
                weight 1
                TCP_CHECK {
                        connect_timeout 3
                        }
                }
        real_server 10.18.43.89  80 {    //web2
                weight 1
                TCP_CHECK {
                        connect_timeout 3
                        }
                }
}

保存退出
```

2.拷贝master上的keepalived.conf到backup上:

#scp keepalived.conf  10.18.43.79:/etc/keepalived/

3.nginx_dr2

  state BACKUP
  priority 100

4.web1 和 web2 

 vip:10.18.43.73  lo
    为了让vip发包出去
      # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  
    忽略arp响应 
      # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

5.两个Director上启动服务:

nginx_dr2
    # service keepalived start
rhel7:
    # systemctl start keepalived


6.测试:


 

1)观察lvs路由条目
2)观察vip地址在哪台机器上
3)客户端浏览器访问vip
4)关闭master上的keepalived服务,再次访问vip


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值