VIP的作用(虚拟ip)

发布时间 2023-06-09 15:02:30作者: Silentdoer

它的作用主要是用于 负载均衡、故障切换等高可用性解决方案上;

比如用于访问一个vip 10.1.18.12,然后它负载均衡(这个规则可以配置)到两个实IP 10.1.18.14,10.1.18.15上(也可以一个vip只对一个实ip),

这样客户不需要知道它访问的具体服务的ip(就是反向代理)而是通过外层vip访问,万一10.1.18.14挂了,可以立刻通过vip的配置隔离掉10.1.18.14

,并在同一个网络里起一个新服务实例10.1.18.19加到vip里(这样就能快速处理问题,实现高可用);

vip和其对应的实ip可以不在同一个网段,但是肯定是要连通的(而且应该是默认连通,如同一个AZ下),否则快速隔离和起新的节点还得加个网络开通步骤(当然不绝对哈)。

 

vip的作用还包括机房搬迁,只要vip不变,后面的服务由机房A搬机房B用户是不需要做任何申请的;

 

之前自己以为域名能实现这个架构,后来发现域名只是客户端请求DNS(包括本地的hosts)得到对应的ip地址,然后再通过这个ip去发起请求(类似302返回),

因此是要求客户端和这个域名解析出的ip之间网络是连通的;而当往域名里加了新的ip,这个对用户是有感的,即用户要确保自己能连通这个新的ip;

所以域名只是ip的别名(可以是多个ip的别名,由客户端如操作系统去决定具体访问哪个ip),一个是正向代理,一个是反向代理;

 

VIP可以通过NLB实现(Network load balancer 负载均衡器),NLB是一种虚拟设备(但是可以简单的理解为类似F5一样的设备),也掌管流量分发(公网网关一般就会用类似NLB的技术);

 

要实现高可用,可以是DNS(域名)+VIP(如NLB支持实现)+具体服务的架构;

 

VIP还有vip漂移的概念,即vip所在的服务、硬件(vip本身也是需要物理设备承载的)出现故障,这个时候vip本身就已经无法访问(类似nginx无法访问,更何况后面的节点),

这个时候上层的负载均衡器能够感知到,自动将这个vip漂移到另外一个服务上(比如通过负载均衡器访问nginx1(假设访问地址是10.1.18.109),但是有个备选的nginx2平时没有流量,当nginx1挂了【模拟vip所在服务挂了】

上层负载均衡器感知到后自动将10.1.18.109的流量转发到nginx2上,这个就是vip漂移(10.1.18.109模拟vip))

具体怎么实现的,应该是vip上一层还有个类似vip的“软件、硬件”。