序言

我开始工作的时候,管理几台跑在小型机上面的Oracle数据库,当时我的同事们总是会把一个词业务ip挂在嘴边。其实那时候我还不很明白什么叫做业务ip,也不明白与这个词相对应的一个词,叫虚拟ip。但是后来随着对业务逐渐的认识吧,知道了这个虚拟ip其实是给应用方使用的,而且可以通过虚拟ip的漂移来实现高可用。

前言

这篇文章其实很简单,就是使用开源软件keepalived来添加一个vip,模拟此过程。

正文

我们准备两台机:

192.168.0.111 app1

192.168.0.112 app2

一个vip:

192.168.0.113

然后,分别给app1和app2安装keepalived,我这里直接用yum安装了,比较快。

yum install -y keepalived

然后,分别修改两台机的/etc/keepalived/keepalived.conf,将其改为:

​ app1:

! Configuration File for keepalived
global_defs {
 router_id LVS_DEVEL
}

vrrp_instance VI_1 {
   state MASTER
   unicast_src_ip 192.168.0.111
   unicast_peer {
    192.168.0.112
   }
   interface eth0
   virtual_router_id 51
   priority 101
   authentication {
       auth_type PASS
       auth_pass 888888
   }
   virtual_ipaddress {
       192.168.0.113
   }
}

​ app2:

! Configuration File for keepalived
global_defs {
 router_id LVS_DEVEL
}

vrrp_instance VI_1 {
   state MASTER
   unicast_src_ip 192.168.0.112
   unicast_peer {
    192.168.0.111
   }
   interface eth0
   virtual_router_id 51
   priority 100
   authentication {
       auth_type PASS
       auth_pass 888888
   }
   virtual_ipaddress {
       192.168.0.113
   }
}

然后,分别启动两台机的keepalived和network服务。

systemctl enable --now keepalived
systemctl restart network

然后就会发现,vip已经出现在app1上。

这时,将app1关机, 然后会发现vip跑去了app2。

再将app1开机,发现vip又回来了。

后记:

配置文件中,需要注意三点:

1. 两台主机的unicast_src_ip为自身ip值,unicast_peer为对方ip值。
2. 备机的priority值需要低于主机的priority值,且不能低太多,最好设置为5以内。
3. 两台主机的vip应该设置为同一ip,且此ip不为其余主机占用,不会产生ip冲突。

小结

本文简单讲了一下keepalived的vip漂移设置方法,当然vip的玩法有很多,也可以对nginx、mysql、zabbix等应用进行vip设置,但是本文做为系列第一篇,就没讲那么多了,以后有空再填坑叭~

posted on 2020-04-08 22:33  eryoung2  阅读(1452)  评论(0编辑  收藏  举报