keepalived配置

keepalived 简介

vrrp 协议的软件实现,原生设计目的为了高可用 ipvs服务

官网: Keepalived for Linux

功能:

  • 基于vrrp协议完成地址流动

  • 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

  • 为ipvs集群的各RS做健康状态检测

  • 基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务

官方文档: Keepalived User Guide — Keepalived 1.4.3 documentation

Keepalived for Linux

实验环境准备

四台主机 rhel7.9

KA1 KA2 192.168.110.10/20

WB1 WB2 192.168.110.110/120

VIP 192.168.110.100

1,下载httpd(wb1/2)

2,设置自启动

3,创建测试页

4,测试是否成功(ka1/2)

KeepAlived 配置

配置文件组成部分

1,下载keep

2,修改配置文件

因两个修改基本一致可直接粘过去(作完一个后再干)

【1】全局设定(没另一个图就是一样的配置)

【2】配置虚拟路由器

3,启动

4,查看是否可以运行

5,如果此时关闭k1服务,则由k2顶上

6,开启后自动顶替(抢占模式)

7,允许访问vip100

【1】现情况,包直接被不接收

【2】原因

【3】修改配置文件(两个都得改)(也可都禁用)

【4】改后

8,独立日志

【1】修改keepalived日志文件路径

【2】修改日志信息配置文件

【3】重启这俩查看是否创建出来keepalived的日志

9, 实现独立子配置文件

当生产环境复杂时,/etc/keepalived/keepalived.conf 文件中内容过多,不易管理 将不同集群的配置。

比如:不同集群的VIP配置放在独立的子配置文件中利用include 指令可以实现包含 子配置文件

【1】修改主体配置文件

【2】此时无法启动,需设置子配置文件后重新启动

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 100
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.110.100/24 dev eth0 label eth0:1
    }
}

【3】重启keep查看是否设定成功

【4】恢复纯净,方便之后好看

10,设置非抢占模式,得把两个都改成backup

【1】K1配置

【2】k2配置

【3】重新启动k1/2

【4】k1权重高于k2,所以vip在k1上

【5】关闭k1的keep,再看

【6】开启后还是k2,因为是非抢占模式

【7】回复纯净

11,抢占延迟模式

抢占延迟模式,即优先级高的主机恢复后,不会立即抢回VIP,而是延迟一段时间(默认300s)再抢回 VIP

注意:需要各keepalived服务器state为BACKUP,并且不要启用 vrrp_strict

【1】k1配置

【2】k2配置

【3】重启

【4】查看(五秒钟后抢回来vip)

【5】纯净环境

K1

K2

重启检测

12, VIP单播配置(有vip通知没有vip的)

【1】k1

【2】k2

【3】重启

13,邮件通知

【1】下载mailx(发邮件的工具)

【2】设置邮件代理

【3】配置邮件客户端

【4】测试

【5】给k2也整上

【6】也测试一下

【7】编写脚本

#!/bin/bash mail_dst="1234567890@qq.com" send_message() { mail_sub="$HOSTNAME to be $1 vip move" mail_msg="'date +%F\ %T': vrrp move $HOSTNAME chage $1" echo $mail_msg | mail -s "$mail_sub" $mail_dst }

case $1 in master) send_message master ;; backup) send_message backup ;; fault) send_message fault ;; *) ;; esac

加权

【8】编辑keep主配置文件

notify_master "/etc/keepalived/mail.sh master" notify_backup "/etc/keepalived/mail.sh backup" notify_fault "/etc/keepalived/mail.sh fault"

【9】重启动(自己发邮件)

【10】回复实验纯净

---------------------------------------------------------------------------------------------------------------------------------

1, 实现 master/master 的 Keepalived 双主架构

master/slave的单主架构,同一时间只有一个Keepalived对外提供服务,此主机繁忙,而另一台主机却 很空闲,利用率低下,可以使用master/master的双主架构,解决此问题。

    master/master 的双主架构: 即将两个或以上VIP分别运行在不同的keepalived服务器,以实现服务器并行提供web访问的目的,提高 服务器资源利用率

                                        究极惨痛教训请一定检测大括号是否完善!!!!

【1】K1修改配置文件

【2】k2修改配置文件

【3】效果

【4】如果一台崩了,另一台就有俩个了

2,实现IPVS的高可用性

实现单主的 LVS-DR 模式

【1】在web1,2上添加vip(临时的)

【2】修改内核路由

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

【3】检查是否生效

【4】k1,2下载ipvsadm(主要目的观察自动生成的配置)

【5】修改配置文件(k1/2一样):

【6】重启

【7】检查策略(自己就生成了)

【8】访问vip

【9】如果关闭一个服务,则会自动修改策略

【10】反之亦然

3,实现其它应用的高可用性 VRRP Scrip

keepalived利用 VRRP Script 技术,可以调用外部的辅助脚本进行资源监控,并根据监控的结果实现优先 动态调整,从而实现其它应用的高可用性功能

原理用脚本将俩优先级修改实现主从切换

【1】创建脚本(检测该文件是否存在)

【2】执行查看

【3】合二为一(0正常1不正常)

【4】加权

【5】修改配置文件

【6】重启,查看

【7】理论上添加后vip自动到k2上了,但暂未找到不行的原因

4,实现HAProxy高可用

【1】K1/2上装haproxy

【2】修改内核参数,使haproxy在主机并未有此ip也可启动(k1/2都做)

net.ipv4.ip_nonlocal_bind = 1

【3】修改haproxy配置文件

listen webcluster bind 192.168.110.100:80

mode http

balance roundrobin

server web1 192.168.110.110:80 check inter 3 fall 2 rise 5

server web2 192.168.110.120:80 check inter 3 fall 2 rise 5

【4】启动配置

【5】查看端口是否开启

【6】将之前的ipvs配置删除(web1,2)

删除vip

修改arp响应(俩都做)

【7】注释K1/2上的lvs(会冲突)

【8】现在就可以使用了

【9】但现在如果vip所在主机挂后,则无法提供服务(不知为啥他自己换了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值