阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Keepalived实现高可用

506次阅读
没有评论

共计 15531 个字符,预计需要花费 39 分钟才能阅读完成。

参考文档:

  1. keepalived user guide:http://www.keepalived.org/pdf/UserGuide.pdf
  2. 安装文档:源码解压包中的 INSTALL 文档

 本文涉及 keepalived 的安装,简单配置,为 haproxy 做高可用。

一. 环境准备

1.  操作系统

CentOS-7-x86_64-Everything-1511

2. Keepalived 版本

截至 2017-03-22,keepalived 版本是 1.3.5:

http://www.keepalived.org/software/keepalived-1.3.5.tar.gz

3.  拓扑图

Keepalived 实现高可用

  1. 采用 VMware ESXi 虚拟出的 2 台服务器 node1/2,前端访问地址 10.11.4.151/152,后端地址 192.168.4.151/2;
  2. Web1 服务器为采用 docker 技术生成的 1 台服务器,已安装并启动 nginx 与 php 服务,ip 地址 192.168.4.171;
  3. Web2/ 3 同 Web1 服务器,ip 地址 192.168.4.172/173;
  4. 计划在 node1/ 2 两台服务器上部署 keepalive&haproxy,利用 keepalived 虚拟出 vip:10.11.4.150 做高可用;
  5. Haproxy 相关配置请参考:http://www.linuxidc.com/Linux/2017-10/147553.htm,调整后将静态网页指向 web1/ 2 服务器的 index.html,将动态网页指向 web1/ 2 服务器的 index.php,其他指向 web3 服务器;
  6. 以 web1 为例,设置测试页面,以方便后续查看验证结果。

    Keepalived 实现高可用

二.Keepalived 安装配置

以下流程均在 node1 节点完成,node2 节点请参考 node1 做适当修改。 

1. 依赖软件

# 升级或者安装相关软件,不是必需都安装一次;
# 一般 libnl3-devel ipset-devel iptables-devel libnfnetlink-devel popt popt-static popt-devel 等并没有预安装到系统中;
#net-snmp-devel 是需要开启相关功能才需要 
[root@elk-node1 ~]# yum install openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel popt popt-static popt-devel gcc kernel-headers kernel-devel net-snmp-devel -y 

2. 下载

[root@elk-node1 ~]# cd /usr/local/src/
[root@elk-node1 src]#wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz 

3. 编译安装

# 编译前可通过”./configure --help”查看相关编译参数;
# 此编译未带“--with-kernel-dir”参数,一般认为采用”--with-kernel-dir=/usr/src/kernels/(version)”指定到内核效果更好,这里环境比较简单,实际使用后并没有明显的问题;
# 这里未指定是因为 centos7 在编译使用参数之后找不到”linux/netlink.h”头文件,即使在相应目录下能找到相应头文件,搜了一下也没有找到对应的解决方案 
[root@elk-node1 src]# tar -zxvf keepalived-1.3.5.tar.gz
[root@elk-node1 src]# cd keepalived-1.3.5
[root@elk-node1 keepalived-1.3.5]# ./configure --prefix=/usr/local/keepalived 
[root@elk-node1 keepalived-1.3.5]# make
[root@elk-node1 keepalived-1.3.5]# make install 

4. 配置开机启动

1) 启动相关命令

# 软链接 
[root@elk-node1 ~]# cd /usr/local/keepalived/
[root@elk-node1 keepalived]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@elk-node1 keepalived]# ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

2)配置文件

# 软链接 
[root@elk-node1 keepalived]# mkdir -p /etc/keepalived
[root@elk-node1 keepalived]# ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ 

3)开机启动

#centos7 编译安装目录下,默认没有”/etc/rc.d/init.d/keepalived”文件,即自启脚本,需要手工配置,前提是将启动相关命令,配置文件等按脚本定义的目录放置;
# 启动时,可能需要运行:systemctl daemon-reload 再重启 keepalived
[root@elk-node1 keepalived]# touch /etc/rc.d/init.d/keepalived
[root@elk-node1 keepalived]# chmod +x /etc/rc.d/init.d/keepalived 
[root@elk-node1 keepalived]# vim /etc/rc.d/init.d/keepalived
#!/bin/sh
#
# keepalived   High Availability monitor built upon LVS and VRRP
#
# chkconfig:   - 86 14
# description: Robust keepalive facility to the Linux Virtual Server project \
#              with multilayer TCP/IP stack checks.

### BEGIN INIT INFO
# Provides: keepalived
# Required-Start: $local_fs $network $named $syslog
# Required-Stop: $local_fs $network $named $syslog
# Should-Start: smtpdaemon httpd
# Should-Stop: smtpdaemon httpd
# Default-Start: 
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: High Availability monitor built upon LVS and VRRP
# Description:       Robust keepalive facility to the Linux Virtual Server
#                    project with multilayer TCP/IP stack checks.
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

exec="/usr/sbin/keepalived"
prog="keepalived"
config="/etc/keepalived/keepalived.conf"

[-e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile=/var/lock/subsys/keepalived

start() {[ -x $exec ] || exit 5
    [-e $config ] || exit 6
    echo -n $"Starting $prog: "
    daemon $exec $KEEPALIVED_OPTIONS
    retval=$?
    echo
    [$retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {echo -n $"Stopping $prog: "
    killproc $prog
    retval=$?
    echo
    [$retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}

reload() {echo -n $"Reloading $prog: "
    killproc $prog -1
    retval=$?
    echo
    return $retval
}

force_reload() {restart}

rh_status() {status $prog}

rh_status_q() {rh_status &>/dev/null
}


case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac
exit $?

# 设置开机启动 
[root@elk-node1 keepalived]# chkconfig --add keepalived
[root@elk-node1 keepalived]# chkconfig --level 35 keepalived on
[root@elk-node1 keepalived]# vim /usr/lib/systemd/system/keepalived.service
# 修改 PIDFile,如下:
PIDFile=/var/run/keepalived.pid 

5. Keepalived 配置文件

[root@elk-node1 ~]# vim /usr/local/keepalived/etc/keepalived/keepalived.conf
#=====================================================
# keepalived.conf 配置 
#------------------------------------------------------------
# 1、Keepalived 配置文件以 block 形式组织,每个块内容都包含在 {}
# 2、“#”,“!”开头行为注释 
# 3、keepalived 配置为三类:
#    (1) 全局配置: 对整个 keepalived 都生效的配置 
#    (2)VRRPD 配置: 核心配置,主要实现 keepalived 高可用功能 
#    (3)LVS 配置 
#=====================================================

! Configuration File for keepalived

########################
#  全局配置 
########################
# global_defs 全局配置标识;
global_defs {# notification_email 用于设置报警邮件地址; 可以设置多个, 每行一个; 设置邮件报警需开启本机 Sendmail 服务 
   notification_email {root@localhost.local}

# 设置邮件发送地址, smtp server 地址, 连接 smtp sever 超时时间 
   notification_email_from root@localhost.local
   smtp_server 10.11.4.151
   smtp_connect_timeout 30

# 表示运行 keepalived 服务器标识,邮件发送时在主题中显示的信息 
   router_id Haproxy_DEVEL
}

######################
#  服务检测配置 
######################
# 服务探测,chk_haproxy 为服务名返回 0 说明服务是正常的 
    vrrp_script chk_haproxy {script "/usr/local/keepalived/etc/chk_haproxy.sh"

# 每隔 1 秒探测一次 
        interval 1

#haproxy 在线, 权重加 2 
#        weight 2
}

######################
#  VRRPD 配置 
######################
# VRRPD 配置标识,VI_1 是实例名称 
vrrp_instance VI_1 {# 指定 Keepalvied 角色,MASTER(必须大写) 表示此主机为主服务器,BACKUP 则是表示为备用服务器;
# 这里因为配置非抢占模式,nopreempt 只作用于 BACKUP, 将 2 台主机均配置为 BACKUP
    state BACKUP

# 指定 HA 监测网络的接口 
    interface eth0

# 虚拟路由标识, 标识为数字,1-255 可选;
# 同 1 个 VRRP 实例使用唯一的标识,MASTER_ID = BACKUP_ID
    virtual_router_id 51

# 定义节点优先级, 数字越大表示节点的优先级越高;
# 同 1 个 VRRP_instance 下,MASTE_PRIORITY > BACKUP_PRIORITY
    priority 100

# MASTER 与 BACKUP 主机之间同步检查的时间间隔, 单位为秒 
    advert_int 1

# 从实际应用角度, 建议配置非抢占模式, 防止网络频繁切换震荡 
    nopreempt


# 设定节点间通信验证类型与密码,验证类型主要有 PASS 和 AH 两种;
# 同 1 个 vrrp_instance,MASTER 验证密码和 BACKUP 保持一致 
    authentication {
        auth_type PASS
        auth_pass 987654
    }

# 设置虚拟 IP 地址 (VIP), 又叫做漂移 IP 地址;
# 可设置多个,1 行 1 个;
# keepalived 通过“ip address add”命令的形式将 VIP 添加到系统 
    virtual_ipaddress {10.11.4.150
    }

# 脚本追踪, 对应服务检测 
    track_script {chk_haproxy}
}

##############################################
# LVS 配置, 这里 keepalived 只做高可用,并不做 lvs
##############################################
# virtual_server LVS 配置标识 
# 格式: virtual_server VIP port [IP 和 port 之间空格隔开] 
# virtual_server 10.11.4.150 443 {
# 设置健康检查时间间隔,单位为秒 
#    delay_loop 6

# 设置负载调度算法,常用调度算法是: rr、wlc,另有:lc、lblc、sh、dh 等 
#    lb_algo rr

# 设置 LVS 实现负载均衡的机制,有 NAT、TUN 和 DR 三种模式可选 
#    lb_kind NAT

# 会话保持时间, 其对动态网页非常有用,为集群系统中的 seesion 共享提供了一个很好的解决方案;
# 用户的请求会一直分发到某个服务节点,直至超过这个会话的保持时间(指最大无响应超时时间),
# 即用户操作动态页面如果在 50s 没有执行任何操作则被分发到另外的节点 
#    persistence_timeout 50

# 转发协议类型 
#    protocol TCP

# 设置 real server 段开始的标识 [IP 为真实 IP 地址]
# 格式:real_server realIP port [IP 和 port 之间空格隔开]
#    real_server 192.168.201.100 443 {
# real server 节点的权值, 权值大小用数字表示, 数字越大, 权值越高 
#        weight 1
# 健康检查 SSL_GET
#        SSL_GET {
# 指定 SSL 检查的 URL 信息, 可以指定多个 
#            url {
# 详细的 URL 路径 
#              path /index.html
# SSL 检查后的摘要信息, 可以通过 genhash 命令工具获取, 命令如下:
# [root@elk-node1 bin]# /usr/local/keepalived/bin/genhash -s 192.168.4.171 -p 80 -u /index.html
#              digest ff20ad2481f97b1754ef3e12ecd3a9cc
#            }
#            url {
#              path /mrtg/
#              digest 9b3a0c85a887a256d6939da88aabd8cd
#            }
# 无响应超时时间,单位为秒 
#            connect_timeout 3
# 重试次数 
#            nb_get_retry 3
# 重试间隔 
#            delay_before_retry 3
#        }
#    }
#} 

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-10/147552p2.htm

6. Keepalived 检测脚本

# 检测 haproxy 服务是否正常运行,如果没有则尝试拉起来,如果尝试失败则重启 keepalived 服务,切换 keepalived 的 vip
[root@elk-node1 ~]# touch /usr/local/keepalived/etc/chk_haproxy.sh
[root@elk-node1 ~]# chmod 755 /usr/local/keepalived/etc/chk_haproxy.sh
[root@elk-node1 ~]# vim /usr/local/keepalived/etc/chk_haproxy.sh
#!/bin/bash
# check haproxy process, if there isn't any process, try to start the process once,
# check it again after 3s, if there isn't any process still, restart keepalived process, change state.
# 2017-03-22 v0.1 
if [$(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
     /etc/rc.d/init.d/haproxy start
     sleep 3

     if [$(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
          /etc/rc.d/init.d/keepalived restart
     fi
fi

# another method to check haproxy process
#killall -0 haproxy 
#if [[$? -ne 0]];then 
#  /etc/rc.d/init.d/keepalived restart 
#fi

三. 验证  

1. 启动

[root@elk-node1 ~]# service keepalived start
[root@elk-node2 ~]# service keepalived start 

2. 查看日志

1)Node1

[root@elk-node1 ~]# tailf /var/log/messages

Keepalived 实现高可用

  1. 以 BACKUP 模式启动;
  2. 切换到 MASTER 模式;
  3. 获得 vip 10.11.4.150,开始对外发送免费 arp 通告。 

2)Node2 

[root@elk-node2 ~]# tailf /var/log/messages

Keepalived 实现高可用

  1. 两个相关子进程启动;
  2. 启动后进入 BACKUP 模式。 

3. VIP

# 使用的是 "ip address add" 添加的 vip 到系统中,因 "ifconfig" 命令看不到效果 
[root@elk-node1 ~]# ip address show eth0

Keepalived 实现高可用

Node1 的网卡 eth0 已经获得 vip 10.11.4.150。 

4. 故障切换

1)Haproxy 故障拉起

[root@elk-node1 ~]# date ; service haproxy stop
[root@elk-node1 ~]# date ; service haproxy status

Keepalived 实现高可用

  1. 手工停止 haproxy 服务;
  2. 因为 keepalived 配置文件中定义了拉起 haproxy 服务的脚本,可以看到 1s 的时间内,haproxy 服务又开始运行了。

2)Node1 日志 

Keepalived 实现高可用 

  1. 日志显示 haproxy 服务停止后再被拉起;
  2. Keepalived 进入 FAULT STATE,进而转到 BACKUP STATE;
  3. Node1 的 eth0 网卡的 vip 被删除。

3)Node2 日志  

Keepalived 实现高可用

  1. Node2 转到 MASTER STATE;
  2. Node2 获得 vip 10.11.4.150,并开始对外发免费 arp 通告。

4)Node2 VIP

[root@elk-node2 ~]# ip address show eth0

Keepalived 实现高可用

Node2 的网卡 eth0 已经获得 vip 10.11.4.150。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-10/147552.htm

参考文档:

  1. keepalived user guide:http://www.keepalived.org/pdf/UserGuide.pdf
  2. 安装文档:源码解压包中的 INSTALL 文档

 本文涉及 keepalived 的安装,简单配置,为 haproxy 做高可用。

一. 环境准备

1.  操作系统

CentOS-7-x86_64-Everything-1511

2. Keepalived 版本

截至 2017-03-22,keepalived 版本是 1.3.5:

http://www.keepalived.org/software/keepalived-1.3.5.tar.gz

3.  拓扑图

Keepalived 实现高可用

  1. 采用 VMware ESXi 虚拟出的 2 台服务器 node1/2,前端访问地址 10.11.4.151/152,后端地址 192.168.4.151/2;
  2. Web1 服务器为采用 docker 技术生成的 1 台服务器,已安装并启动 nginx 与 php 服务,ip 地址 192.168.4.171;
  3. Web2/ 3 同 Web1 服务器,ip 地址 192.168.4.172/173;
  4. 计划在 node1/ 2 两台服务器上部署 keepalive&haproxy,利用 keepalived 虚拟出 vip:10.11.4.150 做高可用;
  5. Haproxy 相关配置请参考:http://www.linuxidc.com/Linux/2017-10/147553.htm,调整后将静态网页指向 web1/ 2 服务器的 index.html,将动态网页指向 web1/ 2 服务器的 index.php,其他指向 web3 服务器;
  6. 以 web1 为例,设置测试页面,以方便后续查看验证结果。

    Keepalived 实现高可用

二.Keepalived 安装配置

以下流程均在 node1 节点完成,node2 节点请参考 node1 做适当修改。 

1. 依赖软件

# 升级或者安装相关软件,不是必需都安装一次;
# 一般 libnl3-devel ipset-devel iptables-devel libnfnetlink-devel popt popt-static popt-devel 等并没有预安装到系统中;
#net-snmp-devel 是需要开启相关功能才需要 
[root@elk-node1 ~]# yum install openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel popt popt-static popt-devel gcc kernel-headers kernel-devel net-snmp-devel -y 

2. 下载

[root@elk-node1 ~]# cd /usr/local/src/
[root@elk-node1 src]#wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz 

3. 编译安装

# 编译前可通过”./configure --help”查看相关编译参数;
# 此编译未带“--with-kernel-dir”参数,一般认为采用”--with-kernel-dir=/usr/src/kernels/(version)”指定到内核效果更好,这里环境比较简单,实际使用后并没有明显的问题;
# 这里未指定是因为 centos7 在编译使用参数之后找不到”linux/netlink.h”头文件,即使在相应目录下能找到相应头文件,搜了一下也没有找到对应的解决方案 
[root@elk-node1 src]# tar -zxvf keepalived-1.3.5.tar.gz
[root@elk-node1 src]# cd keepalived-1.3.5
[root@elk-node1 keepalived-1.3.5]# ./configure --prefix=/usr/local/keepalived 
[root@elk-node1 keepalived-1.3.5]# make
[root@elk-node1 keepalived-1.3.5]# make install 

4. 配置开机启动

1) 启动相关命令

# 软链接 
[root@elk-node1 ~]# cd /usr/local/keepalived/
[root@elk-node1 keepalived]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@elk-node1 keepalived]# ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

2)配置文件

# 软链接 
[root@elk-node1 keepalived]# mkdir -p /etc/keepalived
[root@elk-node1 keepalived]# ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ 

3)开机启动

#centos7 编译安装目录下,默认没有”/etc/rc.d/init.d/keepalived”文件,即自启脚本,需要手工配置,前提是将启动相关命令,配置文件等按脚本定义的目录放置;
# 启动时,可能需要运行:systemctl daemon-reload 再重启 keepalived
[root@elk-node1 keepalived]# touch /etc/rc.d/init.d/keepalived
[root@elk-node1 keepalived]# chmod +x /etc/rc.d/init.d/keepalived 
[root@elk-node1 keepalived]# vim /etc/rc.d/init.d/keepalived
#!/bin/sh
#
# keepalived   High Availability monitor built upon LVS and VRRP
#
# chkconfig:   - 86 14
# description: Robust keepalive facility to the Linux Virtual Server project \
#              with multilayer TCP/IP stack checks.

### BEGIN INIT INFO
# Provides: keepalived
# Required-Start: $local_fs $network $named $syslog
# Required-Stop: $local_fs $network $named $syslog
# Should-Start: smtpdaemon httpd
# Should-Stop: smtpdaemon httpd
# Default-Start: 
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: High Availability monitor built upon LVS and VRRP
# Description:       Robust keepalive facility to the Linux Virtual Server
#                    project with multilayer TCP/IP stack checks.
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

exec="/usr/sbin/keepalived"
prog="keepalived"
config="/etc/keepalived/keepalived.conf"

[-e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog

lockfile=/var/lock/subsys/keepalived

start() {[ -x $exec ] || exit 5
    [-e $config ] || exit 6
    echo -n $"Starting $prog: "
    daemon $exec $KEEPALIVED_OPTIONS
    retval=$?
    echo
    [$retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {echo -n $"Stopping $prog: "
    killproc $prog
    retval=$?
    echo
    [$retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}

reload() {echo -n $"Reloading $prog: "
    killproc $prog -1
    retval=$?
    echo
    return $retval
}

force_reload() {restart}

rh_status() {status $prog}

rh_status_q() {rh_status &>/dev/null
}


case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac
exit $?

# 设置开机启动 
[root@elk-node1 keepalived]# chkconfig --add keepalived
[root@elk-node1 keepalived]# chkconfig --level 35 keepalived on
[root@elk-node1 keepalived]# vim /usr/lib/systemd/system/keepalived.service
# 修改 PIDFile,如下:
PIDFile=/var/run/keepalived.pid 

5. Keepalived 配置文件

[root@elk-node1 ~]# vim /usr/local/keepalived/etc/keepalived/keepalived.conf
#=====================================================
# keepalived.conf 配置 
#------------------------------------------------------------
# 1、Keepalived 配置文件以 block 形式组织,每个块内容都包含在 {}
# 2、“#”,“!”开头行为注释 
# 3、keepalived 配置为三类:
#    (1) 全局配置: 对整个 keepalived 都生效的配置 
#    (2)VRRPD 配置: 核心配置,主要实现 keepalived 高可用功能 
#    (3)LVS 配置 
#=====================================================

! Configuration File for keepalived

########################
#  全局配置 
########################
# global_defs 全局配置标识;
global_defs {# notification_email 用于设置报警邮件地址; 可以设置多个, 每行一个; 设置邮件报警需开启本机 Sendmail 服务 
   notification_email {root@localhost.local}

# 设置邮件发送地址, smtp server 地址, 连接 smtp sever 超时时间 
   notification_email_from root@localhost.local
   smtp_server 10.11.4.151
   smtp_connect_timeout 30

# 表示运行 keepalived 服务器标识,邮件发送时在主题中显示的信息 
   router_id Haproxy_DEVEL
}

######################
#  服务检测配置 
######################
# 服务探测,chk_haproxy 为服务名返回 0 说明服务是正常的 
    vrrp_script chk_haproxy {script "/usr/local/keepalived/etc/chk_haproxy.sh"

# 每隔 1 秒探测一次 
        interval 1

#haproxy 在线, 权重加 2 
#        weight 2
}

######################
#  VRRPD 配置 
######################
# VRRPD 配置标识,VI_1 是实例名称 
vrrp_instance VI_1 {# 指定 Keepalvied 角色,MASTER(必须大写) 表示此主机为主服务器,BACKUP 则是表示为备用服务器;
# 这里因为配置非抢占模式,nopreempt 只作用于 BACKUP, 将 2 台主机均配置为 BACKUP
    state BACKUP

# 指定 HA 监测网络的接口 
    interface eth0

# 虚拟路由标识, 标识为数字,1-255 可选;
# 同 1 个 VRRP 实例使用唯一的标识,MASTER_ID = BACKUP_ID
    virtual_router_id 51

# 定义节点优先级, 数字越大表示节点的优先级越高;
# 同 1 个 VRRP_instance 下,MASTE_PRIORITY > BACKUP_PRIORITY
    priority 100

# MASTER 与 BACKUP 主机之间同步检查的时间间隔, 单位为秒 
    advert_int 1

# 从实际应用角度, 建议配置非抢占模式, 防止网络频繁切换震荡 
    nopreempt


# 设定节点间通信验证类型与密码,验证类型主要有 PASS 和 AH 两种;
# 同 1 个 vrrp_instance,MASTER 验证密码和 BACKUP 保持一致 
    authentication {
        auth_type PASS
        auth_pass 987654
    }

# 设置虚拟 IP 地址 (VIP), 又叫做漂移 IP 地址;
# 可设置多个,1 行 1 个;
# keepalived 通过“ip address add”命令的形式将 VIP 添加到系统 
    virtual_ipaddress {10.11.4.150
    }

# 脚本追踪, 对应服务检测 
    track_script {chk_haproxy}
}

##############################################
# LVS 配置, 这里 keepalived 只做高可用,并不做 lvs
##############################################
# virtual_server LVS 配置标识 
# 格式: virtual_server VIP port [IP 和 port 之间空格隔开] 
# virtual_server 10.11.4.150 443 {
# 设置健康检查时间间隔,单位为秒 
#    delay_loop 6

# 设置负载调度算法,常用调度算法是: rr、wlc,另有:lc、lblc、sh、dh 等 
#    lb_algo rr

# 设置 LVS 实现负载均衡的机制,有 NAT、TUN 和 DR 三种模式可选 
#    lb_kind NAT

# 会话保持时间, 其对动态网页非常有用,为集群系统中的 seesion 共享提供了一个很好的解决方案;
# 用户的请求会一直分发到某个服务节点,直至超过这个会话的保持时间(指最大无响应超时时间),
# 即用户操作动态页面如果在 50s 没有执行任何操作则被分发到另外的节点 
#    persistence_timeout 50

# 转发协议类型 
#    protocol TCP

# 设置 real server 段开始的标识 [IP 为真实 IP 地址]
# 格式:real_server realIP port [IP 和 port 之间空格隔开]
#    real_server 192.168.201.100 443 {
# real server 节点的权值, 权值大小用数字表示, 数字越大, 权值越高 
#        weight 1
# 健康检查 SSL_GET
#        SSL_GET {
# 指定 SSL 检查的 URL 信息, 可以指定多个 
#            url {
# 详细的 URL 路径 
#              path /index.html
# SSL 检查后的摘要信息, 可以通过 genhash 命令工具获取, 命令如下:
# [root@elk-node1 bin]# /usr/local/keepalived/bin/genhash -s 192.168.4.171 -p 80 -u /index.html
#              digest ff20ad2481f97b1754ef3e12ecd3a9cc
#            }
#            url {
#              path /mrtg/
#              digest 9b3a0c85a887a256d6939da88aabd8cd
#            }
# 无响应超时时间,单位为秒 
#            connect_timeout 3
# 重试次数 
#            nb_get_retry 3
# 重试间隔 
#            delay_before_retry 3
#        }
#    }
#} 

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-10/147552p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计15531字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7954336
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...