上文有说到Global Public IP,这种类型的IP没办法给VM的NIC挂载也不能挂载到standard lb上,那么这个东西它是做什么用的呢?
这就涉及到这次要介绍的这个新产品,Cross Region LB
顾名思义,以前的Load Balancer,不管是Basic LB还是Standard LB,其实都是regional的东西,也就是说只能在特定region使用,也只能负载某一个reigon的流量,Azure其实也有一些能跨region使用的服务,比如FrontDoor,比如traffic manager,但是这些都是在四层以上生效的,而4层的跨region使用的产品之前是没有的,Cross Region Load Balancer就是专门用来应对这种场景的,虽然现在还是在preview的状态,具体可以看下下边的文档
https://docs.microsoft.com/en-us/azure/load-balancer/cross-region-overview?WT.mc_id=AZ-MVP-5001235
总体上来说,用了cross region LB之后,系统的架构大概是这样
其实和FrontDoor之类的产品架构是比较类似的,只不过一个是四层,一个是七层
四层虽然没有七层那么多功能,不过最起码像要保留客户端IP之类的反而会比较容易
Cross Region Load Balancer主要支持以下这些功能
- 源自多个区域的传入流量。
- 即时全局故障转移到下一个最佳区域部署。
- 将负载跨区域分配到延迟超低的最近 Azure 区域。
- 可在单个终结点后面进行纵向扩展/缩减。
- 静态任意播全局 IP 地址
- 客户端 IP 保留
- 无需接受培训即可在现有负载均衡器的基础上构建解决方案
下边来做个简单的测试,在east asia和east us分别创建Apache服务器,然后通过cross region lb来负载流量
首先先在上边说的两个reigon创建LB
LB的后端就是各个region的Apache服务器
接下来目的就是创建一个cross region的LB,将流量分发给之前创建的这两个LB,一个在Asia,一个在US,这在以前是做不到的,但是cross region LB可以做到
Cross Region Load Balancer只有external类型的LB才有,internal的没有,Public 类型的才可以选GlobalTier的load balancer
之后在Frontend IP configuration这里就可以选择添加IP了,而这个IP就是之前讲到的Global Public IP
Backend这里其实会发现和传统LB的区别,这里的backend可以选择的都是各个region的LB,而不是像传统LB一样,要选择VM和IP
Inbound的规则倒是和之前差不多,凑合加个80的就完了
从离亚洲近的位置访问,并且从不同的VM测试,发现一直访问到的都是Asia的服务器
但是从Canada这种离US近的位置访问,就会是访问到US的服务器
总体来说,配置简单,功能实用,值得一试