奇云VPC网络负载均衡服务的实现浅析
Posted 360奇云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇云VPC网络负载均衡服务的实现浅析相关的知识,希望对你有一定的参考价值。
奇云VPC网络负载均衡服务
实现浅析
进入正题之前,我们先介绍一下负载均衡及VPC网络:
1.负载均衡
负载均衡是对多台服务器进行流量分发的服务,用以扩展应用系统对外服务能力,通过消除单点故障提升应用系统的可用性。
2.VPC网络及360奇云的实现
传统的经典网络,所有租户共享公共网络资源池,租户之间未做任何逻辑隔离。租户的内网IP由系统统一分配,租户IP无法重叠。
在之前的文章中,已经介绍了360奇云VPC架构的演进,
今天我们讨论的方案实现也是基于阶段二的VPC架构来进行的。
360奇云目前的VPC架构是基于硬件EVPN+VxLAN,主要改变如下:
1. VxLAN的VTEP从软件的OVS移交到接入交换机,减少OVS encap/decap VxLAN包带来的计算节点CPU消耗;
2. 接入交换机充当虚拟化网络的分布式网关,使用VRF隔离不同租户;
结合以上两点,我们在设计适用VPC的负载均衡服务时,引入l3-vni来唯一标识一个VPC vip,并为VPC RS增加l2-vni, hypervisor-ip, mac 等属性来唯一标识一个VPC RS。
另外,在计算节点引入一个vgw.ko内核模块,用于设置VPC VIP ARP 代理以及对负载均衡流量进行VxLAN encap/decap;
其总体架构如下图所示:
02
以创建一个VIP和RS均为VPC IP为例,其创建流程及数据流如下所示:
通过openstack API 创建一个VPC VIP,并为其关联后端服务器后。openstack会通知所有相关的计算节点加载该VIP的ARP代理。
LB-Agent通过监听配置的改变,生成keepalived.conf并下发到所有的负载均衡服务器生效。
负载均衡服务器通过gobgp,向VIP对应的VRF通过TYPE-5路由(IP prefixes route),将目的为VPC VIP的流量引到负载均衡服务器。
负载均衡器收到到VIP的流量后,调度选择后端服务器,做DNAT,并根据keepalived中RS配置的l2-vni, hypervisor, mac信息,封装VxLAN包,发送到对应VPC RS所在的计算节点,计算节点上的vgw.ko模块解封装VxLAN包,将流量发送给相应的虚机,并记录tunnel封装信息。
当RS回包时,首先查找tunnel sesion,如果不存在,则说明不是负载均衡服务器分发过来的流量,走正常的虚拟化网络路径出去;如果存在,则按照tunnel session,封装VxLAN包,发送到对应的负载均衡服务器,由负载均衡服务器解封装,做SNAT,并回给client。
扫描二维码
掌握产品动态和技术好文
极速稳定的云服务
就在360奇云!
以上是关于奇云VPC网络负载均衡服务的实现浅析的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 AWS 网络负载均衡器以使用 Terraform 路由 HTTPS 流量?