虚拟机上keepalived实验笔记

简介: 首先准备两台虚拟机 构架方式为 其中没有后端使用两台虚拟机安装nginx和keepalived master {nginx + keepalived 192.168.110.171}   -  [vrrp192.

首先准备两台虚拟机


构架方式为

其中没有后端使用两台虚拟机安装nginx和keepalived


master {nginx + keepalived 192.168.110.171}   -  [vrrp192.168.1.138]   -   backup{{nginx + keepalived 192.168.110.172}




需要关闭防火墙selinux

两台服务器安装

yum install -y nginx

yum install -y keepalived


keeplves_master服务器上的keepalived.conf配置

global_defs {

   router_id keeplves_master #hostname

}

vrrp_script chk_nginx {

    script "/etc/keepalived/check.sh" #检测nginx的脚本

    interval 5 #每2秒检测一次

    weight -20 #如果某一个nginx宕机 则权重减20

}

vrrp_instance VI_1 {

    state MASTER #状态 MASTER BACKUP

    interface ens33 #绑定的网卡

    virtual_router_id 51 #虚拟路由的ID号,两个节点设置必须一样

    mcast_src_ip 192.168.110.171 #本机的IP

    priority 90

    advert_int 1

# 设置验证信息,两个节点必须一致

    authentication {

        auth_type PASS

        auth_pass 1111

    }

# 虚拟IP,两个节点设置必须一样。

    virtual_ipaddress {

        192.168.1.138

    }

# nginx存活状态检测脚本

    track_script {

      chk_nginx

    }

}


keeplves_backup服务器上的keepalived.conf配置

global_defs {

   router_id keeplves_backup #hostname

}

vrrp_script chk_nginx {

    script "/etc/keepalived/check.sh" #检测nginx的脚本

    interval 2 #每2秒检测一次

    weight -20 #如果某一个nginx宕机 则权重减20

}

vrrp_instance VI_1 {

    state BACKUP #状态 MASTER BACKUP

    interface ens33 #绑定的网卡

    virtual_router_id 51

    mcast_src_ip 192.168.1.172

    priority 40

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.1.138

    }


    track_script {

      chk_nginx

    }

}


nginx状态检测脚本简单写法

#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
    systemctl stop nginx #尝试重新启动nginx
    sleep 2 #睡眠2秒
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
        systemctl stop keepalived
        #killall keepalived #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
    fi
fi


遇到的问题

报错信息

May 22 14:43:49 keeplves_master Keepalived_vrrp[42456]: Sending gratuitous ARP on ens33 for 192.168.1.138

May 22 14:43:49 keeplves_master Keepalived_vrrp[42456]: Sending gratuitous ARP on ens33 for 192.168.1.138

May 22 14:43:49 keeplves_master Keepalived_vrrp[42456]: Sending gratuitous ARP on ens33 for 192.168.1.138

interval4 : 每4s检测一次,这里要大于监控脚本执行的时间,监控脚本会执行超时,keepalived会发送SIGTERM信号结束监控脚本的执行。


启动nginx  keepalived


查看虚拟IP是否绑定192.168.1.138如果有这个IP则绑定成功

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

    link/ether 00:0c:29:cc:7a:77 brd ff:ff:ff:ff:ff:ff

    inet 192.168.1.171/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33

       valid_lft 84406sec preferred_lft 84406sec

    inet 192.168.1.138/32 scope global ens33

       valid_lft forever preferred_lft forever

    inet6 fe80::279c:6292:4838:c6f6/64 scope link noprefixroute 

       valid_lft forever preferred_lft forever



停掉nginx测试

看是否会把虚拟IP主动切换到backup上

如果切换到了证明成功

实验结束

更多内容欢迎到博客讨论www.g6k.cn

不适用于生产环境














相关文章
|
15小时前
|
数据库 网络虚拟化
【计网·湖科大·思科】实验四 生成树协议STP的功能、虚拟机局域网VLAN
【计网·湖科大·思科】实验四 生成树协议STP的功能、虚拟机局域网VLAN
9 1
|
5月前
|
架构师 Java 程序员
入职没见过P8领导,3月后他带着份769页虚拟机笔记出关了
Java是目前用户最多、使用范围最广的软件开发技术,Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java类库、Java编程语言及许许多多的第三方Java框架(如Spring、 MyBatis等) 构成。在国内,有关Java类库API、Java语言语法及第三方框架的技术资料和书籍非常丰富,相比而言,有关Java虚拟机的资料却显得异常贫乏。
|
8月前
|
机器学习/深度学习 Ubuntu 算法
操作系统原理实验2:进程调度(在Ubuntu虚拟机gcc编译环境下
操作系统原理实验2:进程调度(在Ubuntu虚拟机gcc编译环境下
113 0
|
10月前
|
监控 安全 Linux
虚拟机CentOS的Nginx+keepalived 高可用集群配置主从模式
虚拟机CentOS的Nginx+keepalived 高可用集群配置主从模式
135 0
|
11月前
|
Java 程序员
详解虚拟机!京东大佬出品HotSpot VM源码剖析笔记(附完整源码)
有这么一句话:学Java不怕找不到工作,Java的就业前景好,岗位也多,入门还快...但真的是这样吗?为什么明明岗位空缺单位却招不到合适的人?为什么很多学习Java的人却没有单位录用?答案就一个字:卷!公司对于Java开发的要求都变高了,很多东西你不仅要会用,还得知道其中的原理,不然免谈~
|
11月前
|
Oracle 关系型数据库 MySQL
|
12月前
|
运维 数据安全/隐私保护 虚拟化
运维小笔记:Windows-VMWare 虚拟机密码移除
本文介绍一种使用大白菜 PE 系统内置的密码移除工具,通过加载到 VMWare 虚拟机上,移除虚拟机密码的方法
427 0
|
算法 Java Linux
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【下部】
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【下部】
169 0
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【下部】
|
算法 Java 编译器
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【上部】
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【上部】
147 0
「月光宝盒」JVM研究系列「技术总结笔记」Java虚拟机垃圾回收认知和调优的"思南(司南)"【上部】
|
XML 存储 Ubuntu
RK3568开发笔记(五):在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像
buildroot虽然灵活,但是基于实际情况,本身是侧重驱动和应用定制开发的只定制一次文件系统投入有点多,还不如直接ubunt自己交叉编译依赖库,做一些库的移植裁剪。   于是本篇就使用ubuntu系统了,至于其他库自己下源码在宿主机交叉编译号后,再拷贝过去或者直接在板子上编译也行(只是会比较慢),但是意义不大,因为开发过程肯定是用宿主机,不然核心板编译太慢,在编译上会花费不少可以省去的时间。
RK3568开发笔记(五):在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像