keepalived安装

keepalived安装

  1. 下载keepalived
    官网下载地址:https://www.keepalived.org/download.html

  2. keepalived安装

    #创建目录
    tar -zxvf keepalived-2.2.8.tar.gz
    #进入解压包
    cd keepalived-2.2.8
    #执行配置安装目录
    #--sysconf是指定核心配置文件,如果不指定位置为/etc,那么以后启动keepalived就会报错,
    #会提示在/etc下找不到keepalived
    ./configure --prefix=/usr/local/keepalived --sysconf=/etc
    #编译并安装
    make && make install
    #创建目录
    mkdir /etc/keepalived
    #切换到keepalived-2.2.8目录
    #拷贝配置文件到/etc/keepalived目录下
    cp keepalived/etc/keepalived/keepalived.conf.sample /etc/keepalived/
    #复制keepalived脚本到/etc/init.d/
    cp keepalived/etc/init.d/keepalived /etc/init.d/
    #切换到/etc/keepalived/目录,修改配置文件名称
    mv keepalived.conf.sample keepalived.conf
    
  3. keepalived配置注意

    1. 因为使用的是阿里云服务器,需要HaVip配合来实现。
      参考地址:https://help.aliyun.com/zh/vpc/user-guide/use-highly-available-virtual-ip?spm=5176.22414175.sslink.1.677020deS99Wgm

     在传统数据中心里,服务器可以通过地址解析协议ARP(Address Resolution Protocol)声明自己的IP地址并对外提供服务,很多应用场景或常用软件需要主机具备此能力。例如,使用Keepalived、Heartbeat等软件实现容灾恢复过程中服务IP不变的高可用方案。
     然而,大部分云厂商采用SDN架构后,在VPC环境下不支持免费ARP广播功能。因为云上网络环境需使用虚拟化技术构建,虚拟服务器IP地址由云平台底层的虚拟化平台分配和管理。您的应用无法像传统方式一样修改主机IP地址,且整个虚拟网络是基于3层的隧道技术,ARP被终结在发送端,主机无法声明IP地址。为此,阿里云推出HaVip功能,解决此问题

    1. unicast_src_ip与unicast_peer一定要手动配置

     配置的时候unicast_src_ip和unicast_peer一定要手动配置,否则会出现漂移ip挂载两台服务器上的情况。这是因为在服务器网络环境中,路由交换层禁用了ARP的广播限制,造成KEEPALIVE主备协议无法通过广播的方式进行通信,造成主备两台服务器都强占HAVIP地址,出现同时两台服务器都有VIP地址的情况出现,必须通过配置来指定IP的两台服务器间进行通讯。

  4. 修改keepalived.conf配置文件

    首先修改MASTER节点配置文件vim /etc/keepalived/keepalived.conf

    global_defs {
    	# 路由id,主备节点不能相同
    	router_id keepalived_node1
    }
    # 自定义监控脚本
    vrrp_script chk_haproxy {
    	# 脚本位置
        script "/etc/keepalived/haproxy_check.sh" 
        # 脚本执行的时间间隔
        interval 5
        weight 10
    }
    vrrp_instance VI_1 {
    	# Keepalived的角色,MASTER 表示主节点,BACKUP 表示备份节点
        state MASTER
        # 指定监测的网卡,可以使用 ifconfig 进行查看
        interface eth0
        # 虚拟路由的id,主备节点需要设置为相同
        virtual_router_id 172
        # 优先级,主节点的优先级需要设置比备份节点高
        priority 100
        # 设置主备之间的检查时间,单位为秒 
        advert_int 2
        unicast_src_ip 10.188.1.172
    	unicast_peer{
       		10.188.1.174
    	}
    	# 定义验证类型和密码
    	authentication { 
            auth_type PASS
            auth_pass rrduser9K!
        }
        # 调用上面自定义的监控脚本
        track_script {
            chk_haproxy
        }
        virtual_ipaddress {
            # 虚拟IP地址,可以设置多个
            10.188.1.204
        }
    }
    

    修改BACKUP节点配置文件

    	global_defs {
    	# 路由id,主备节点不能相同
    	router_id keepalived_node2
    }
    # 自定义监控脚本
    vrrp_script chk_haproxy {
    	# 脚本位置
        script "/etc/keepalived/haproxy_check.sh" 
        # 脚本执行的时间间隔
        interval 5
        weight 10
    }
    vrrp_instance VI_1 {
    	# Keepalived的角色,MASTER 表示主节点,BACKUP 表示备份节点
        state BACKUP
        # 指定监测的网卡,可以使用 ifconfig 进行查看
        interface eth0
        # 虚拟路由的id,主备节点需要设置为相同
        virtual_router_id 172
        # 优先级,主节点的优先级需要设置比备份节点高
        priority 50
        # 设置主备之间的检查时间,单位为秒 
        advert_int 2
        unicast_src_ip 10.188.1.174
    	unicast_peer{
       		10.188.1.172
    	}
    	# 定义验证类型和密码
    	authentication { 
            auth_type PASS
            auth_pass rrduser9K!
        }
        # 调用上面自定义的监控脚本
        track_script {
            chk_haproxy
        }
        virtual_ipaddress {
            # 虚拟IP地址,可以设置多个
            10.188.1.204
        }
    }
    
  5. 编写haproxy_check.sh

    #!/bin/bash
    # 判断haproxy是否已经启动
    if [ ${ps -C haproxy --no-header |wc -l} -eq 0 ] ; then
        #如果没有启动,则启动
        haproxy -f /etc/haproxy/haproxy.cfg
    fi
    #睡眠3秒以便haproxy完全启动
    sleep 3
    #如果haproxy还是没有启动,此时需要将本机的keepalived服务停掉,
    #以便让VIP自动漂移到另外一台haproxy
    if [ ${ps -C haproxy --no-header |wc -l} -eq 0 ] ; then
        systemctl stop keepalived
    fi
    
  6. 脚本授权
    chmod +x /etc/keepalived/haproxy_check.sh

  7. 启动服务

    #开启服务
    service keepalived start     
    #关闭服务
    systemctl stop keepalived  
    #查看到虚拟 IP 的情况
     ip a 
    
  8. 结果验证

    1. 使用ip a命令查询rabbitmq1(10.188.1.172)主节点。存在虚拟ip 10.188.1.204
      在这里插入图片描述1. 使用ip a命令查询

    2. 使用ip a命令查询rabbitmq2(10.188.1.174)备份节点。不存在虚拟ip
      在这里插入图片描述

    3. 验证故障转移
      停止rabbitmq1(10.188.1.172)主节点 systemctl stop keepalived,主节点虚拟ip消失
      在这里插入图片描述
      rabbitmq2(10.188.1.174)备份节点,存在虚拟ip 10.188.1.204
      在这里插入图片描述

  • 28
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值