Linux 下搭建 Keepalived

文章
林里克斯

Linux 下搭建 Keepalived


试验平台:CentOS Linux release 7.9.2009

Keepalived Version:Keepalived v2.1.5 (07/13,2020)


一、下载安装


1.官网

https://www.keepalived.org/
https://www.keepalived.org/download.html
#下载页

2.安装 Keepalived

- `yum` 安装

1.yum 安装

$ sudo yum -y install keepalived

2.安装完成后会生成以下文件

/usr/sbin/keepalived
#keepalived 命令二进制文件
/etc/keepalived/keepalived.conf
#主配置文件
/usr/lib/systemd/system/keepalived.service
#system 文件
- 源码安装

1.安装依赖

$ sudo yum -y install gcc gcc-c++ openssl-devel
#如果要支持IPv6还需要安装libnl3-devel
#不然会有以下警告
*** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.

2.相关报错

#没有 openssl-devel   
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
configure: error: 
  !!! OpenSSL is not properly installed on your system. !!!
  !!! Can not include OpenSSL headers files.            !!!

3.下载解压

$ wget https://www.keepalived.org/software/keepalived-2.1.5.tar.gz
$ tar xf keepalived-2.1.5.tar.gz 
$ cd keepalived-2.1.5
$ ./configure --prefix=/data/keepalived/ --sysconf=/data/keepalived/conf/
$ make && make install

4.普通用户执行 make install 可能会遇到以下报错

/usr/bin/install -c -m 644 keepalived.service '/usr/lib/systemd/system'
/usr/bin/install: cannot remove ‘/usr/lib/systemd/system/keepalived.service’: Permission denied
#这个是生成 system 的 keepalived.service 文件

二、配置文件详解


1.keepalived.conf

$ cat /data/keepalived/conf/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {               #全局配置
   notification_email {     #邮件通知
     acassen@firewall.loc   #收件人邮箱
   }
   notification_email_from Alexandre.Cassen@firewall.loc    #发件人邮箱
   smtp_server 192.168.200.1    #SMTP 服务
   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 实例名,VI_1 可自定义
    state MASTER            #主备模式,只能有一个为 MASTER,其他均为 BACKUP
    interface eth0          #绑定的网卡接口,填写网卡名字
    virtual_router_id 51    #当前虚拟路由唯一标识,范围是 0-255
    priority 100            #当前主机再次虚拟路由中的优先级,越大越优先,范围是 1-254,从不允许高于主
    advert_int 1            #VRRP 通告的时间间隔,master 和 backup 之间检查
    authentication {        #认证,主从需一致
        auth_type PASS      #认证类型 PASS/AH
        auth_pass 1111      #配置密码
    }
    virtual_ipaddress {     #虚拟 VIP
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }
}

    notify_master "/data/keepalived/master.sh"     # 当成为主模式时候, 执行的脚本
    notify_backup "/data/keepalived/backup.sh"     # 当成为备模式时候, 执行脚本
    notify_fault "/data/keepalived/fault.sh"       # 当成为 fault 模式, 执行脚本

    track_script {     # 跟踪脚本
        check_httpd    # 脚本名
    }

virtual_server <IPADDR> <PORT> {        #虚拟主机
    delay_loop 6            #service polling的delay时间,即服务轮询的时间间隔
    lb_algo rr              #LVS 调度算法 rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind NAT             #LVS 集群模式 NAT|DR|TUN  
    persistence_timeout 50  #会话保持时间(秒为单位),即以用户在 120 秒内被分配到同一个后端 realserver
    protocol TCP            #健康检查 TCP|UDP

    sorry_server <IPADDR> <PORT>    #

    real_server <IPADDR> <PORT> {   #后端真实节点主机的权重等设置,主要,后端有几台这里就要设置几个
        weight 1        #给每台的权重,0 表示失效(不知给他转发请求知道他恢复正常),默认是 1
        SSL_GET {
            url {
              path /
              digest ff20ad2481f97b1754ef3e12ecd3a9cc
            }
            url {
              path /mrtg/
              digest 9b3a0c85a887a256d6939da88aabd8cd
            }
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

2.如果搭建完发现虚拟ip同时出现了在多台资源上,是由于开了防火墙未放通组播地址导致的
需要放开组播地址的权限:

iptables -I INPUT -i eth0 -d 224.0.0.18 -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT

Over~

版权协议须知!

本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

1205 0 2020-11-30


分享:
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
博主卡片
林里克斯 博主大人
一个致力于Linux的运维平台
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。

现在时间 2024-12-28

今日天气
站点统计
  • 文章总数:241篇
  • 分类总数:29个
  • 评论总数:12条
  • 本站总访问量 353541 次

@奥奥

@Wong arrhenius 牛比

@MakerFace 厉害了!