在很多利用场景中,须要在云平台中搭建高可用集群,就这须要用到虚构 IP 地址性能。明天就来谈一谈虚构 IP 地址及它的利用场景。
一、高可用集群
在谈虚构 IP 地址前,咱们先理解一下什么叫高可用集群。
高可用集群(High Availability Cluster),或者叫故障转移集群(Failover Cluster),它是指通过集群软件,将几台服务器组合为一个集群零碎提供服务,这些服务器中同一时间内个别只有一台在提供服务(称之为主节点或者 Master 节点),其它服务器待命(称之为备节点或者 Slave 节点),当主节点呈现服务器故障或者利用呈现问题,集群软件主动将业务切换到备节点上,实现了故障的主动转移,使业务恢复正常,缩短了业务不可用工夫。
二、高可用集群和负载平衡集群的区别
天翼云平台曾经提供了弹性负载平衡服务,也能够实现业务的高用性,那为什么还要有高可用集群而不间接用负载均衡器呢?
这是因为负载平衡集群和高可用集群的应用场景有肯定的差异。
负载均衡器的性能是依据配置的算法将承受到的利用申请散发到后端的实在服务器上,同时负载均衡器负责进行故障检测,如果后端实在服务器呈现故障时,负载均衡器时会将呈现故障的实在服务器从散发列表中剔除,利用申请不会散发到呈现故障的服务器上,实现故障隔离。这种场景个别利用于后端服务器的位置是对等的场景,就像去电信营业厅办理业务,去 1 号还是 2 号柜台是没有任何区别的,都能够失常办理业务。因而负载均衡器个别用于 Web 服务器、应用服务器场景。
想一想,负载均衡器帮咱们实现了 Web 服务器或应用服务器的高可用,如果负载均衡器自身出了问题怎么办呢?是不是整个业务零碎就当掉了呢?尽管负载平衡也能够分级部署,一个负载均衡器把业务再次散发到后端的多个负载均衡器上,但第一级的负载均衡器还是有呈现单点故障的可能。这就要用到高可用集群了。
高可用集群次要用于服务的接口只能是繁多接口的场景。举个例子,一个公司里只会有一个总经理,可能会有几个副总,几个副总的分工会有所不同,但总经理永远只会有一个。如果总经理因某些起因不能持续履职,可能会从几个副总中提拔或者空降一个过去当总经理。这几个副总就如同负载平衡架构下的后端实在服务器,总经理如果不能履职了,就如同负载均衡器自身出了故障,必须要安顿一个新的总经理来接任。
三、高可用集群中的虚构 IP 地址
一个高可用集群须要一个对立的拜访入口,这个入口就是 IP 地址。如果主节点当机了,备节点接管利用后同时也要把利用拜访入口接管过去,否则客户端还会持续去拜访曾经当机的主节点。
画图举例,图中集群主节点 IP 地址是 192.168.1.10,备节点 IP 地址是 192.168.1.11,失常状况下客户端拜访主节点的 IP 地址 192.168.1.10,如果主节点当机了,要实现故障的切换须要做两个步骤:1、在备节点上把利用启动起来 2、把备节点的 IP 地址批改为 192.168.1.10。就这须要人工进行干涉,因为 IP 地址是不能随便变更的,达不到主动故障切换的目标。这种集群个别称之为冷备,备节点平时甚至能够关机,主节点呈现故障后人工进行干涉复原业务。
为实现客户端拜访入口 IP 地址的主动切换,高可用集群中引入了虚构 IP 地址。虚构 IP 地址又称为 VIP 或者浮动 IP,在图中咱们减少一个虚构 IP 地址 192.168.1.20 把它配置在主节点上,主节点呈现故障后,集群软件会主动在备节点上减少这个虚构 IP 地址。这样集群中理论有三个 IP 地址,192.168.1.10 和 192.168.1.11 个别称之为公有 IP 地址或固定 IP 地址,它们是不会随着利用的主备切换变更的,而 192.168.1.20 这个地址就会依据状况在两个节点之间切换。
主节点失常时,虚构 IP 地址在主节点上,由主节点提供服务:
主节点当机后,服务由备节点接管,虚构 IP 地址主动切换到备节点上:
四、天翼云虚构 IP 地址
在传统 IT 零碎中,虚构 IP 地址通过集群软件配置后就能够失常应用了。
在私有云平台上,须要在云平台申请一个虚构 IP 地址,并绑定到高可用集群中的云主机,再在集群软件中配置这个虚构 IP 地址就能够失常应用。
虚构 IP 地址同时能够绑定到一个弹性公网 IP 地址,实现从公网拜访高可用集群。
虚构 IP 的申请办法为在天翼云管制台上,进入虚构公有云菜单,进入须要创立虚构 IP 所在的子网,点击到“虚构 IP”页面,申请一个虚构 IP 地址。
虚构 IP 地址申请实现后,须要将虚构 IP 地址绑定到高可用集群内的云主机,并能够绑定虚构 IP 地址到一个弹性公网 IP 地址。
绑定实现后,平台的架构如下图:
五、罕用高可用集群软件及利用
目前私有云平台上最罕用的高可用集群软件是开源的 keepalived 软件,keepalived 只反对 Linux 操作系统,它在集群内保护一个虚构 IP 地址,并能够监控利用的状态,进行虚构 IP 地址的切换及利用的启停。
常见的利用场景举例:
1、keepalived + LVS/Haproxy 实现高可用负载平衡集群
2、keepalived + nginx/Tomcat 等中间件实现高可用利用集群
3、keepalived + MySQL 实现 MySQL 高可用集群
4、keepalived + kubernetes 实现容器高可用集群