NSX Advanced Load Balancer 支持缩放虚拟服务,这样可以在多个服务引擎之间分配工作负载以按需增加容量,从而扩展虚拟服务的吞吐能力并提升高可用性级别。

Microsoft Azure 中的 NSX Advanced Load Balancer 部署利用 Microsoft Azure 负载均衡器提供类似于 ECMP 的 L3 扩展架构。

NSX Advanced Load Balancer 支持为 Azure 部署中的给定虚拟服务配置多个虚拟服务 IP 地址 (VIP)。在这种情况下,将使用虚拟服务的 FQDN 注册所有 IP 地址,并使用基于 DNS 的负载均衡在 VIP 之间分配流量。使用此功能时,可以优化具有高 SSL TPS 和高吞吐量的架构。有关在 Microsoft Azure 环境中缩放虚拟服务的更多信息,请参阅VMware NSX Advanced Load Balancer 配置指南》中的“虚拟服务缩放”一节。

用例

使用此功能时,入站流量将由同一 Azure 负载均衡器 (ALB) 中的两个或更多 VIP 提供服务,并且这些 VIP 会根据负载扩展到所需的 SE。当 ALB 在扩展到特定数量的 SE 之外方面存在限制时,该功能在这种环境中非常有用。

为虚拟服务配置多个 IP 地址

注:
  • 给定虚拟服务的每个虚拟服务 IP 地址 (VIP) 始终会放置在一组不同的 SE 上。

  • 两个 VIP 都托管在同一 Azure LB 上。

下图显示了为虚拟服务配置了多个 IP 地址时的流量。

图 1. 对 Azure 云的多 VIP 支持

以下是对上图的观察结果:

  1. VS1 是域 test.foo.com 的虚拟服务。

  2. 对于 VS1,配置了两个 IP:10.0.0.5 和 10.0.0.6。

  3. 根据配置,入站流量将流向其中一个 IP。

  4. 通过使用该功能,VIP1 扩展到 SE1、SE2 和 SE3。VIP2 扩展到 SE4 和 SE5。在 Azure 云上,SE1、SE2 和 SE3 属于 scale-set-A。SE4 和 SE5 属于 scale-set-B。由于配置了两个不同的规模集,因此在发生扩展或缩减事件时,将优化资源。

使用 NSX Advanced Load Balancer CLI 进行配置

NSX Advanced Load Balancer CLI 用于为 Azure 云中的虚拟服务配置多个 VIP 功能。尚不支持使用 NSX Advanced Load Balancer UI 进行配置。登录到 NSX Advanced Load Balancer CLI,然后使用 configure virtual service <virtual service name> 命令为选定的虚拟服务配置多个 VIP。

[admin:controller1]: > configure virtualservice vstest
[admin:controller1]: virtualservice> services port 80
New object being created
[admin:controller1]: virtualservice:services> save
[admin:controller1]: virtualservice> vip
New object being created
[admin:controller1]: virtualservice:vip> vip
[admin:controller1]: virtualservice:vip> vip_id 1
[admin:controller1]: virtualservice:vip> subnet_uuid dev-subnet
[admin:controller1]: virtualservice:vip> auto_allocate_ip
[admin:controller1]: virtualservice:vip> auto_allocate_ip_type v4_only
[admin:controller1]: virtualservice:vip> where
Tenant: admin
Cloud: Default-Cloud
+-----------------------+---------------+
| Field | Value |
+-----------------------+---------------+
| vip_id | 1 |
| subnet_uuid | dev-subnet |
| auto_allocate_ip | True |
| auto_allocate_ip_type | V4_ONLY |
+-----------------------+---------------+
[admin:controller1]: virtualservice:vip> save
[admin:controller1]: virtualservice> vip
New object being created
[admin:controller1]: virtualservice:vip> vip_id 2
[admin:controller1]: virtualservice:vip> subnet_uuid test-subnet
[admin:controller1]: virtualservice:vip> auto_allocate_ip
[admin:controller1]: virtualservice:vip> auto_allocate_ip_type v4_only
[admin:controller1]: virtualservice:vip> save
[admin:controller1]: virtualservice> save