keepalived,是实现vrrp协议,原生设计的目的为了高可用ipvs服务
1.基于vrrp完成地址流动
2。为vip集群的节点生成ipvs规则
3.为ipvs的各RS做健康监测,针对监测结果,完成节点管理
4.基于脚本调用接口通过执行脚本完成脚本中定义的功能,进而影响集群事务
如何安装来配置keepalive,在centos6上就已经收录进base仓库了,各个节点时间必须要同步
只要关注前三点,最后一点也不是必须的
通过ntpdate 来进行时间同步
server指向172.16.0.1就可以了
把服务启动起来,开机自动启动
另外的机器也同样配置
status如果是enabled就已经是开机启动了
clear 清楚界面
可以使用unit confiles的方式来修改防火墙定律
各节点可以通过主机名来互相通讯
node2上也配置好了
现在尝试安装keepalived
要通过多播地址进行通讯,就要确保这个网卡多播是打开的,支持多播功能
如果不支持就需要开启
可以先关闭看看效果
继续开启,设定某个网卡属性,用来on起来
确保网卡支持多播
ip地址段有
A A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。
B B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。
C C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。
D D类IP地址在历史上被叫做多播地址(multicast address),即组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收到一个分组的站点。
多播地址的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。
D:224-239
先配置N/M功能,然后再去配置双主模型,然后再去配置IPVS功能
先做基本的配置
安装keepalived
两台机器都安装keepalived
查看包里安装了哪些文件
先备份一下配置文件
整个配置文件大致分为3端,
顶级结构
全局配置(全局定义和静态路由)
VRRPD 有几个VIP实例,配置在哪个网卡上,IP地址是什么,以及各 路由器的优先级等等
配置lvs
instances 实例
VRRP同步组
(有一个应用对外是一个,对内是一个地址)面对客户端配置一个VIP1,面对服务器配置一个VIP2,但是
把第一个VIP放路由1,把VIP2放路由2时是不可行的,
把两个虚拟路由定义成一个同步组就能确保他们把VIP放在同一节点的主机上
同步组一般不用,原因很简单,做nginx反代,或者lvs负载均衡时,内网网卡地址通常不用合并,到底是什么地址都无所谓,只要把对应的请求发送出去就可以了,但是有一个服务就有问题,
NAT服务,如果做NAT类型的LVS集群时,内网阻隔的网关要指向DIP,(对应的主机一旦地址发生了改变,VIP需要转义,DIP也需要转义,否则各RS的网关就出现故障了,就找不到DIP了,所以就需要VIP和DIP一定要工作在一台机器上)一旦ldirectord发生了地址转义,DIP就也需要转义,DIP就也需要使用高可用的方式进行转义,而且两个网卡要使用固定地址VIP,地址飘逸才核实floating IP
如果多个VIP服务需要在同一台主机上进行编译的话,也可以把它定义成逻辑组 VITRUAL SERVER GROOUPS
配置文件的默认多播地址是224.0.0.18,都需要修改,将来在生产中如果在同一个网段内有多个集群就需要修改这个
VRRP实例
监控本机上的哪个网卡
各个虚拟路由器之间的ID不能相同,范围是0~255之间
优先级
每一秒通知自己的信息
authentication 验证,使用哪种验证方法,密码简单字符串验证,做多不要超过8个字符,超过了只有前8个字符才有用
关键地方,VIP只要用来流动IP地址,
ip地址 配置在哪个网卡上 或者哪个别名上
默认是抢占模式的,只要优先级比别人低,就立即抢占了
如果想要非抢占就应该用nopreempt
preempt delay表示 ,你要抢占,最起码也要等300秒
主节点发生变化该如何去控制,
如果是自己变成主的,就用后面的脚本
如果是主节点变成备的了,用什么脚本来进行控制
如果主节点故障该如何进行故障
还可以省略到一个脚本来控制,只不过传的参数不同
使用默认配置文件来进行配置
从当前一行到最后一行删除
发送给本机root用户很简单,-s可以指标题,一般本地的邮件服务都是开启的
所以本机到本机发邮件很简单
字符串,用来标识主机的
不能使用默认多播地址,只有多个主机的多播地址一样才认为是在一个多播域里
status参数有master和backup两种
master只能有一个
还需要priority优先级高于其他主机
interface 打算把当前的应用开在哪个接口上
同一个路由需要保持一致
随机生成一个字符串作为密码,只有前8个有效
**配置虚拟地址格式
label eth2:1网卡别名
**
把配置文件复制到另外一台机器上去
在第二个节点上进行修改
**优先级需要比100低
router-id 33必须一样
密码必须一样
地址必须一样
**
主节点宕机,从节点会抢过去,但是主节点恢复,优先级高于从节点,又会被主节抢过去
启动keepalived
因为主节点还未启动,所以从服务器就进入master模式
ip地址也配置上去了
启动主节点服务
查看从节点的状态
收到了更高的广播通告,所以把自己的master状态移除了,进入backup模式
现在主节点地址就出来了
现在把主节点停止,查看从节点是否接上
从服务器就拿到了地址
查看状态
如果主节点又起来,这个从节点就要让位了
也可以在主节点上抓包,查看通讯过程
用网卡抓包试试
也可以指明地址向哪边通讯
查看从节点设置的多播地址
可以看到多播信息,一秒钟一个
使用host可以指定地址
advertisement 通告,当前的虚拟路由器是33,优先级是100,验证时简单字符串验证, 每个一秒来一次
在备用节点上就能收到主节点发的通告
不断收到172。16.0.67发的通告
如果把当前主机宕机了
收到优先级为0,从节点就劫取ip地址接上
后面就变成主机通告了
开启服务
通告自己的优先级100,就继续作为主节点
这就是VRRP的工作机制,配置也十分简单
现在无论如何都有一个节点是处于空闲状态,如果期望不处于空闲状态,就可以使用双主模型(是主备,和备主两个模型去了两边,意味着一个机器要要配置两个vip
现在修改主节点配置文件
从14行到最后一行
第二个虚拟路由
修改从节点上的
这俩个虚拟路由ip不一样,密码不一样,serverid不一样
现在重载配置文件
现在现监测,后面再启动节点
启动从节点
有两个通告
对于34而言,优先级100是最高的,但是33来言,96不是最高的
说明一个节点有多个地址是可以的
启动主节点服务
这边发生的通告就发生改变了
对33来讲100上了,对于34l来讲100上了,node2就转移了地址了,现在只有98了
如果备节点宕机了,会如何
先打开监听
关闭自己的服务
对方节点就接替了
地址都在node1上了
keepalived实现VRRP协议做转移非常简单