Keepalived安装部署

九月1年前技术文章494


安装keepalived

yum 安装keepalived

yum install keepalived

keepalived.conf配置文件进行调整,其中state设置主备状态,interface设置对应网络接口类型,priority设置优先级,备节点数字小于master节点,数字越大优先级越高。virtual_ipaddress设置虚拟IP地址,track_script设置读取检查脚本的方法,在方法中配置对应脚本位置。

image.png

主节点cdp01修改配置文件keepalived.conf为

! Configuration File for keepalived

global_defs {
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 60
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_haproxy
    }
    virtual_ipaddress {
        10.60.1.21/32
    }
}

vrrp_script check_haproxy {
  script "/etc/keepalived/haproxy_check.sh"
  interval 2
}

备节点cdp02修改配置文件keepalived.conf为

! Configuration File for keepalived

global_defs {
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 60
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        check_haproxy
    }
    virtual_ipaddress {
        10.60.1.21/32
    }
}

vrrp_script check_haproxy {
  script "/etc/keepalived/haproxy_check.sh"
  interval 2
}

设置haproxy检查脚本haproxy_check.sh,赋予可执行权限

#!/bin/bash 
HAPROXY_STATUS=`ps -C haproxy --no-header | wc -l`
if [[ $HAPROXY_STATUS -eq 0 ]];then
  date >> /etc/keepalived/haproxy_check.log
  echo "haproxy is not running" >> /etc/keepalived/haproxy_check.log
  exit 1
fi

keepalived设置开机自启

systemctl enable keepalived
systemctl start keepalived
systemctl status keepalived

最终keepalived配置文件为

主节点

! Configuration File for keepalived                            
                            
global_defs {                            
script_user root                            
}                            
                            
vrrp_script chk_haproxy {                            
  script "/etc/keepalived/haproxy_check.sh"                            
  interval 2                            
  user root                            
}                            
                            
vrrp_instance VI_1 {                            
    state MASTER                            
    interface eth0
    virtual_router_id 60
    priority 100
#    nopreempt  #不抢占 ,back节点配置
    advert_int 1
    unicast_src_ip  10.60.1.1
    unicast_peer {
10.168.54.100
    }
    authentication {
auth_type PASS
auth_pass 1111
    }
    track_script {
chk_haproxy
    }
    virtual_ipaddress {
10.60.1.21/32 dev eth0 label eth0:1
#10.168.54.105/32 dev eth0 label eth0:2
    }
}

备节点

! Configuration File for keepalived

global_defs {
script_user root
}
vrrp_script chk_haproxy {
  script "/etc/keepalived/haproxy_check.sh"
  interval 2
  user root
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 60
    priority 50
    nopreempt
    advert_int 1
    unicast_src_ip  10.168.54.101
    unicast_peer {
10.60.1.1
    }
    authentication {
auth_type PASS
auth_pass 1111
    }
    track_script {
chk_haproxy36,546%
    }
    virtual_ipaddress {
10.60.1.21/32
    }
}

Faq:

Q1:keepalived两个节点出现脑裂现象(双vip)

A:在配置文件中添加如下配置后,重启keepalived服务

unicast_src_ip  10.11.4.187         ##source ip
    unicast_peer {
            10.11.4.186               ##dest ip
    }

Q2:keepalived在haproxy挂掉之后无法进行VIP的切换

cdp01中的haproxy挂掉之后,cdp01中查看IP地址,VIP还存在于cdp01中。

A:修改配置文件为

图2.png

因为原先用的默认用户keepalived_script,这个主机中没有该用户。替换成root,把脚本方法提上来,VIP可以正常切换。


标签: 大数据运维

相关文章

helm安装部署trino对接hive(一)

helm安装部署trino对接hive(一)

前提:本文前提是基于hive组件已经提前安装的情况下,安装部署好trino容器之后进行对hive组件的对接。helm trino地址:https://artifacthub.io/packages/h...

磁盘分盘脚本分享

磁盘分区脚本名称:mg_fdisk.sh#!/bin/bashif [ "$#" -ne 1 ]; then  echo "请传入磁盘参数"  exit 1fidisk=$1# 检查磁盘是否存在if...

正式发布 | 《云运维服务白皮书》开放下载!

正式发布 | 《云运维服务白皮书》开放下载!

在全球数字化变革的背景下,为适应数字经济环境下企业生存发展和市场变化的需要,企业进行主动的、系统性、整体性的数字化转型升级。大数据、云计算、人工智能、区块链等新一代信息通信技术为企业的数字化转型提供了...

HBase使用snappy压缩

HBase使用snappy压缩

安装编译环境依赖yum install -y automake autoconf gcc-c++ cmake libedit libtool openssl-devel ncurses-devel安装...

CDP实操--集群扩容

CDP实操--集群扩容

一、前提准备工作1.确保OS的yum源可以正常使用,通过yum repolist命令可以查看到匹配的OS的所有包2.确保Cloudera Manager的yum源运行正常3.hosts文件配置,需要将...

Hive架构图及Hive SQL的执行流程

Hive架构图及Hive SQL的执行流程

1、Hive产生背景MapReduce编程的不便性HDFS上的文件缺少Schema(表名,名称,ID等,为数据库对象的集合)2、Hive是什么Hive的使用场景是什么?基于Hadoop做一些数据清洗啊...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。