keepalived学习记录

一直以来,对于Nginx+Keepalived实现高可用都停留在一个比较模糊的阶段。
只大致理解部署两个Nginx节点,其中只会有一个节点提供服务(主节点)。
当主节点挂了,自动切换到另一个节点(备用节点),这时候就是备用节点来提供服务,以此来达到高可用的目的。

但是对于主备切换的实现原理一直都不太清楚,加上tcp也有个keepalive,很容易和keepalived搞混。
于是专门花点时间来学习一下,通过记录博客来巩固一下。

要理解主备切换的原理,首先得了解什么是VIP(Virtual IP):虚拟IP。
下面两篇文章讲解得比较清楚:
https://www.cnblogs.com/myseries/p/11409895.html
https://www.cnblogs.com/wangwangfei/p/15575929.html
说是虚拟IP,看起来其实也就是一个普通的IP,似乎并没有什么差别。
但是和一般IP不同的是,虚拟IP不会分配给真实的主机。
换句话说,虚拟IP对应的不是某一台固定的主机(可以认为对应多台主机),它所对应的主机是会动态变化的
类似如下图:
在这里插入图片描述
VIP实际对应哪个IP,其实是不确定的,因为是可以随实际情况动态变化的。

一个IP对应的主机动态变化,这是怎么实现的呢,这就涉及到ARP协议了,简单理解为一个将IP地址转换为主机MAC地址的协议。
通过修改IP地址和MAC地址的对应关系,即可做到IP切换了(常说的VIP漂移,其实大致就是这样了)。

这个东西如果要自己去做,有大量的细节在里面,最好的方法当然是利用现成的工具软件了。
而且服务高可用可不只是IP切换这么简单,如何检测主节点挂掉,VIP漂移到备用节点,也有很多工作要做。
用keepalived,就可以只用配置一下,就轻松做到。

说了这么多,那keepalived到底是什么
一句话概括:keepalived一个基于VRRP协议来实现的服务高可用方案。

好像还是比较难以理解,
下面实际安装下keepalived来进行体验:

1、安装keepalived:

yum install -y keepalived
keepalived --version
systemctl start keepalived
systemctl status keepalived

2、修改keepalived配置文件
keepalived配置文件默认为:/etc/keepalived/keepalived.conf
默认安装好是有示例配置的,我这边直接把这个文件清空,写入自己的配置:

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        172.19.103.240
    }
}

3、重新加载配置

systemctl reload keepalived

4、查看是否生效

ip addr show eth0

在这里插入图片描述
可以看到已经生效

也可以通过执行 ip -br a命令来进行查看

目前只是单台机器,在多台机器上的操作类似
通过修改priority可以控制哪台实际生效

更多参考链接:
http://www.linuxvirtualserver.org/software/ipvs.html
https://www.redhat.com/sysadmin/keepalived-basics
https://www.redhat.com/sysadmin/ha-cluster-linux

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值