keepalived 安装和配置解析
阅读原文时间:2023年07月08日阅读:3

Keepalived的特性


    配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能

    稳定性强:keepalived是一个类似于layer3, 4 & 7交换机制的软件,具备我们平时说的第3层、第4层和第7层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可快速进行切换,监测机制灵活,成功率高。 

    成本低廉:开源软件,可直接下载配置使用,没有额外费用。

    应用范围广:因为keepalived可应用在多个层面,所以它几乎可以对所有应用做高可用,包括LVS、数据库、http服务、nginx负载均衡等等

    支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择

Keepalived工作流程图


    

工作流程图详解:

Keepalived的核心模块是VRRP Stack和Cheackers,实现HA集群中失败切换(Failover)功能
Keepalived通过VRRP功能结合LVS负载均衡软件即可部署一个高性能的负载均衡集群系统
Checkers主要功能是可实现对服务器运行状态监测和故障隔离
其中IPVS和Realserver健康状态检查是通过配置文件配置实现
而其它服务(Nginx,HAProxy)的高可用则需要通过自己编写脚本,Keepalived提供调用脚本的接口

Keepalived运行有3个守护进程
父进程
主要负责读取配置文件初始化,监控2个子进程,由WacthDog提供监控
每个子进程打开一个接受Unix域套接字,父进程连接到那些Unix域套接字并向子进程发送周期性(5s)hello包
子进程
VRRP进程
Cheackers进程
上图Keepalived的功能体系结构,分为两层
用户空间
内核空间
IPVS和NETLINK

配置文件组成

/etc/keepalived/keepalived.conf
global configuration
global definitions:定义邮件配置,route_id, vrrp配置,多播地址等
vrrp configuration
vrrp instances :定义每个vrrp虚拟路由器
lvs configuration
virtual server groups
virtual servers : lvs集群的vs和rs

配置文件详解:


global
global_defs {
notification_email {
root@localhost
admin@nginx.com
}

router\_id LVS\_DEVEL  每个keepalived主机唯一标识,建议使用hostname  

vrrp_skip_check_adv_addr 默认对所有报文进行检查,比较消耗性能,可以设置为如果收到的报文和上一个报文是相同路由器则跳过检查
vrrp_strict 严格遵守vrrp协议,建议不加
vrrp_garp_interval 0 arp报文发送延迟,0表示不延迟
vrrp_gna_interval 0 (不请自来)消息发送延迟
vrrp_mcast_group4 224.0.0.18 组播地址
}

vrrp_instance VI_1 {
state MASTER 当前节点在此虚拟路由器的状态(master|backup)
interface eth0. 绑定当前虚拟路由器使用的物理接口
virtual_router_id 51 每个虚拟路由器的唯一标识
priority 100 当前节点在此虚拟路由器的优先级
advert_int 1 vrrp通告的时间间隔 默认1s
authentication { 认证机制
auth_type PASS pass为简单密码,推荐
auth_pass 1111 仅前8位有效
}
virtual_ipaddress {
虚拟IP,
192.168.200.16 不指定网卡,默认eth0 ,默认32 prefix
192.168.200.17/24 dev eth1 建议和interface指定的网卡不是同一个
192.168.200.18/24 dev eth2 lable eth2:1
}
}

virtual_server 192.168.18.240 80 {

#设置一个virtual server:

                VIP:Vport

                delay_loop 3

                # service polling的delay时间,即服务轮询的时间间隔

                lb_algo rr

                #LVS调度算法:rr|wrr|lc|wlc|lblc|sh|dh

                lb_kind DR

                #LVS集群模式:NAT|DR|TUN

                #persistence_timeout 120

                #会话保持时间(持久连接,秒),即以用户在120秒内被分配到同一个后端realserver

                nat_mask 255.255.255.255

                protocol TCP

                #健康检查用的是TCP还是UDP

                real_server 192.168.18.251 80 {

                #后端真实节点主机的权重等设置,主要,后端有几台这里就要设置几个

                weight 1

                #给每台的权重,rr无效

                #inhibit_on_failure

                #表示在节点失败后,把他权重设置成0,而不是IPVS中删除

                TCP_CHECK {

                    connect_timeout 2

                    #连接超时时间

                    nb_get_retry 3

                    #重连次数

                    delay_before_retry 1 #重连间隔

                                    }

      }

      real_server 10.211.55.33 80 {
        weight 1
        HTTP_GET {
          url {
            path /
            status_code 200
            }
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
        }
    }

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章