Microsoft Azure 支持基于高可用性的可用区。NSX Advanced Load Balancer 支持 Microsoft Azure 云的多可用区。在 Azure 中置备的服务引擎和应用程序负载均衡器也使用基于可用区的新 HA。本节详细介绍了在 Microsoft Azure 和 NSX Advanced Load Balancer 中启用多可用区所需的设置。

有关 Azure 中可用区的完整信息,请参阅以下链接:

Microsoft Azure 的配置设置

在 Microsoft Azure 上,确保所选区域支持多可用区功能。目前,NSX Advanced Load Balancer 仅支持在一个区域内跨可用区的 SE。

NSX Advanced Load Balancer 的配置设置

NSX Advanced Load Balancer 的 Azure 云配置中启用 use_enhanced_ha flag。如果云具有已创建的 SE 或虚拟服务,则无法启用此标记。虚拟服务、池创建配置工作流将保持不变。Azure 允许子网、ALB 和公用 IP 跨多个可用区。因此,虚拟服务只需要一个从不同可用区扩展到 SE 的 VIP。

支持 Microsoft Azure 的三个可用区

NSX Advanced Load Balancer 版本 21.1.1 开始,每个服务引擎组将支持三个可用区 (AZ),并且用于选择可用区的选项是可配置的。在该版本之前,可用区数量默认设置为 2,并且值不可编辑。默认情况下,云级别的 Azure 配置中有两个可用区,并且可以在任一可用区中创建 SE。

借助最新的增强功能,可以根据需要在三个可用区的任何一个中创建 SE。如果相应区域不支持可用区,则在创建 SE 时会显示错误。

配置三个可用区

导航到基础架构 > 云 > 位置和网络,然后启用使用 Azure 的增强高可用性功能选项,如下所示。根据需要,选择可用区。

图 1.

使用 azure_configuration 模式下可用的 use_enhanced_ha 选项,根据服务引擎组的需要配置三个可用区。以下是用于配置可用区的命令:

[admin:10-10-1-1]: > configure cloud Az1
[admin:10-10-1-1]: cloud> azure_configuration
[admin:10-10-1-1]: cloud:azure_configuration> use_enhanced_ha
Overwriting the previously entered value for use_enhanced_ha
[admin:10-10-1-1]: cloud:azure_configuration> availability_zones 1
[admin:10-10-1-1]: cloud:azure_configuration> availability_zones 2
[admin:10-10-1-1]: cloud:azure_configuration> availability_zones 3
[admin:10-10-1-1]: cloud:azure_configuration> save
[admin:10-10-1-1]: cloud> save

以下是配置三个可用区后的输出:

|   use_enhanced_ha            | True                                                                             |
|   use_managed_disks          | True                                                                             |
|   availability_zones[1]      | 1                                                                                |
|   availability_zones[2]      | 2                                                                                |
|   availability_zones[3]      | 3                                                                                |
|   use_standard_alb           | False
注:

确保 availability_zones 配置与上面完全相同。如果为 availability_zones 添加不正确的值,将导致 SE 创建失败。

Advanced Load Balancer 设置

与基本 ALB 一样,云连接器可为每个 SE 组创建一个标准 SKU 内部 ALB 和一个外部 ALB。每个虚拟服务都有一个 VIP 和一个可选的公用 IP 地址。服务引擎虚拟机是在单个可用区中创建的。每个虚拟服务将至少跨两个可用区放置。用于创建标准 SKU ALB 的云连接器可以跨 Azure 可用区提供可用性。标准 ALB 要求明确配置网络安全组 (Network Security Group, NSG),以允许公用 IP 的流量流入。

为 Azure 创建网络安全组 (NSG) 时采用的方案如下所示:



网络安全组设置

云连接器会为每个云创建一个 NSG,并将其与在该云中创建的每个 SE 网卡关联。默认情况下,NSG 配置了以下规则:



这些规则可确保允许虚拟网络的所有入站和出站流量。然后,Azure 负载均衡器可以探测虚拟机,并且虚拟机能够访问 Internet。

除此之外,在配置公用 IP 时,cloud_connector 会在此 NSG 中为每个公用 IP 添加一个规则。这允许从任何源到虚拟服务上配置的 public IP:port 的入站流量。这些规则的优先级从 100 开始。

以下是配置后的 NSG 入站规则示例。

Azure 支持每个 NSG 最多 500 个规则,以容纳公用 IP 的数量。

以下是设置的顺序:

  1. 创建 NSG - 为云创建第一个 SE 后,将为每个云创建一个 NSG。

  2. 将 NSG 与网卡关联 - 创建服务引擎后,NSG 会在创建网卡时与 SE 网卡关联。这可确保网卡与 NSG 一起启动。

  3. 创建 NSG 规则 - 创建具有公用 IP 的虚拟服务,并向 cloud_connector 发出 attach_ip 调用后,将在 NSG 中配置该公用 IP 的规则。该规则将所有端口(或端口范围)配置为虚拟服务的一部分。

  4. 删除 NSG 规则 - 移除公用 IP 后,在定期进行的垃圾数据收集周期中,将从 NSG 中移除相应的 NSG 规则。

  5. 删除 NSG - 删除云时会删除 NSG。