Horizon Cloud on Microsoft Azure 简化了虚拟桌面和应用程序的交付。通过单个解决方案,组织可以在 Microsoft Azure 上轻松部署和管理虚拟应用程序和桌面,并利用云资源。通过轻松的部署流程、简化的管理以及为云构建的体系架构,IT 部门可以节省启动和运行时间。

Horizon Cloud on Azure 以自带订阅模式提供。在此模式下,

  • VMware 管理 Azure 上的 Horizon Cloud 部署,包括所有组件的置备和生命周期管理。

  • 在客户拥有但由 VMware 管理的 Azure 订阅中完成置备。

有关 Horizon Cloud 的更多信息,请参阅 Horizon Cloud - 云原生虚拟桌面平台

Microsoft Azure 上的 NSX Advanced Load Balancer

NSX Advanced Load Balancer 提供企业级功能齐全的负载均衡、具有 100% REST API 自动化的 WAF,以及可在 Microsoft Azure 中部署的分析。

有关更多信息,请参阅VMware NSX Advanced Load Balancer 安装指南》中的“在 Microsoft Azure 中安装 NSX Advanced Load Balancer主题。

适用于 Horizon Cloud on Azure 的 NSX Advanced Load Balancer

NSX Advanced Load Balancer 可用于为 Horizon Cloud on Azure 部署提供应用程序交付功能(负载均衡、WAF 和 GSLB)。

使用 NSX Advanced Load Balancer 的主要优势包括:

  • 跨内部部署和公有云 Pod 的多云 Horizon 部署中的一致应用程序交付策略。

  • 能够利用 NSX Advanced Load Balancer 分析功能(如衡量指标和每个请求日志)来提供更好的可见性和故障排除。

  • 必要时对负载均衡容量进行弹性扩展。

参考设计

目前,NSX Advanced Load Balancer 作为客户管理安装的 Horizon Cloud on Azure 提供。

在此场景中,

  • VMware 管理 Azure 上的 Horizon Cloud 部署,包括所有组件的置备和生命周期管理。

  • 在客户拥有但由 VMware 管理的 Azure 订阅中完成置备。

此外,

  • NSX Advanced Load Balancer 由客户部署在同一个订阅中,从而与 Horizon Cloud 对象共享 Azure 虚拟网络 (VNet)。

  • 置备 Cloud Pod 时,必须包含/修改某些配置,如以下指南中所详述。



使用 NSX Advanced Load Balancer 置备 Horizon Pod

对于新部署,请按照以下步骤使用 NSX Advanced Load Balancer 置备 Horizon Pod:

  1. 部署 NSX Advanced Load Balancer 控制器 并在控制器中配置 Azure 云

  2. 创建 Horizon Cloud Pod

  3. 修改 Azure 上外部 UAG 的网络安全组

  4. NSX Advanced Load Balancer 控制器 上配置虚拟服务

在 Azure 上部署和配置 NSX Advanced Load Balancer 控制器

按照NSX Advanced Load Balancer 安装指南》“在 Microsoft Azure 中安装 VMware NSX Advanced Load Balancer主题中所提供的步骤安装和配置 NSX Advanced Load Balancer Controller 集群。

安装 NSX Advanced Load Balancer 控制器

有关安装 NSX Advanced Load Balancer 控制器 的详细步骤,请参阅VMware NSX Advanced Load Balancer 安装指南》中的“在 Microsoft Azure 中安装 NSX Advanced Load Balancer主题。

注:
  • NSX Advanced Load Balancer 控制器 是一个控制平面实体。操作员可以连接到控制器来进行配置、操作和分析。

  • 控制器可以在订阅内的单独资源组中进行实例化,并从用于 Horizon Cloud 的同一 VNet 中提供一个 IP 地址。

  • NSX Advanced Load Balancer 控制器 也可以采用内部部署方式安装,或安装在其他订阅/VNet 中。在这些情况下,控制器必须具有到 Azure 端点的 IP 连接,并且与 Horizon Cloud Pod VNet 对等互连。

配置 Azure 云

有关初始化控制器以及在控制器中配置 Azure 云以使其可以置备 NSX Advanced Load Balancer 服务引擎的详细信息,请参阅VMware NSX Advanced Load Balancer 安装指南》中的“在 Microsoft Azure 中安装 NSX Advanced Load Balancer主题。

注:
  • 建议对正在配置的 Azure 云连接器使用单独的资源组。

  • VNet 必须与用于 Horizon Cloud 的 VNet 相同。

  • 必须启用专用管理网络。这可确保将单独的网卡用于控制器到服务引擎通信。

在创建 NSX Advanced Load Balancer 虚拟服务之前,必须执行以下与 Azure 相关的步骤。

部署 Horizon Cloud Pod

可以从 Horizon 应用程序主页置备 Horizon Cloud Pod。

有关部署 Horizon Cloud Pod 的步骤,请参阅 VMware Horizon Cloud Service 文档

默认情况下,Horizon Cloud on Azure 从 Azure IP 地址空间置备新的公共 IP,用于对外部 UAG 进行负载均衡。此 IP 是在标准 Pod 部署中置备的 Azure 负载均衡器上配置的。此 IP 还会在 UAG 上配置为 PCoIP URL。

要改为使用 NSX Advanced Load Balancer,请在 Pod 部署期间停用自动分配,而改为提供公共 IP(将托管在 NSX Advanced Load Balancer 虚拟服务上)。

在外部 UAG 配置设置中,执行以下操作:

  1. 停用选项启用公共 IP

  2. 输入任何未使用的 IP。

    注:

    创建虚拟服务后,将此 IP 替换为 NSX Advanced Load Balancer 虚拟服务中的实际虚拟服务 IP。

修改外部 UAG 的网络安全组

修改与外部 UAG 关联的 Azure 网络安全组。Horizon Cloud 会配置 Azure 网络安全组 (Network Security Group, NSG) 以限制对 UAG 的访问。外部 UAG 的默认 NSG 允许来自控制和数据端口的流量(源自 Internet)。修改 NSG 以允许相同端口上源自 DMZ 子网的入站流量。

NSX Advanced Load Balancer 上创建虚拟服务

有两个选项可用于在 Azure 中部署 NSX Advanced Load Balancer 以进行 UAG 负载均衡。

  1. 具有两个虚拟服务的单个 VIP

  2. 单个 L4 虚拟服务

有关这些设计选项的更多信息,请参阅 Horizon 的参考架构

具有两个虚拟服务的单个 VIP

要配置具有两个虚拟服务的单个 VIP,请执行以下步骤:

  1. 创建将 UAG 作为成员的 IP 组

  2. 为 UAG 创建自定义运行状况监控器

  3. 创建池

  4. 创建 SSL 配置文件并安装 SSL 证书

  5. 创建 L7 虚拟服务

  6. 使用 L7 虚拟服务作为共享 VIP 来创建 L4 虚拟服务,并指定辅助协议所需的所有端口

以下部分详细介绍了这些步骤。

创建 IP 组

IP 组是配置文件、策略和日志可引用的以逗号分隔的 IP 地址列表。由于在两个不同池中可使用相同的 UAG 服务器作为池成员,因此可以将 IP 组连接到该池,而不是直接将服务器连接到该池。对池成员所做的任何配置更改(如添加或移除服务器)都需要在 IP 组级别进行。

要创建 IP 组,请执行以下操作:

  1. NSX Advanced Load Balancer UI 中,导航到模板 > > IP 组

  2. 单击创建 IP 组

  3. 新建 IP 组屏幕中,输入 IP 组名称

  4. 单击选项按 IP 地址选择

  5. 输入要对其进行流量负载均衡的 UAG 服务器的 IP 地址。

  6. 单击保存

部署 UAG 后,将在 Azure 门户上提供 UAG 的 IP 地址。

为 Horizon 创建自定义运行状况监控器

要创建自定义运行状况监控器,请执行以下操作:

  1. NSX Advanced Load Balancer UI 中,导航到模板 > 配置文件 > 运行状况监控器

  2. 单击创建

  3. 选择为 Horizon 创建的 Azure 云

  4. 新建运行状况监控器屏幕中输入以下详细信息。

    1. 字段

      发送间隔

      30

      接收超时

      10

      客户端请求的数据

      GET /favicon.ico HTTP/1.0

      响应代码

      2xx

  5. 单击保存

为 UAG 池创建 SSL 配置文件

使用下面给出的配置为 UAG 池创建 SSL 配置文件:

  1. 导航到模板 > SSL/TLS 配置文件 > 创建

  2. 选择应用程序配置文件

  3. 输入详细信息,如下所示:

    • 接受的版本:1.2

    • 单击密码选项卡,然后从密码列表中选择以下内容:

      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  4. 单击保存

创建池

池保留为其分配的服务器列表,并执行运行状况监控、负载均衡、持久性和涉及 NSX Advanced Load Balancer 到服务器交互的功能。

池包括 UAG 服务器(即 UAG server01 和 UAG server02)的 IP 地址。创建两个池:

  • 对于 L7 (HTTPS),该池为 Horizon-L7-pool

  • 对于辅助协议,命名为 Horizon-L4-pool

需要这两个池才能连接到将创建的两个虚拟服务。

必须将一致哈希(将源 IP 地址作为密钥)配置为哈希算法以保持源 IP 关联性。

要创建池,请执行以下操作:

  1. 导航到应用程序 >

  2. 选择云子屏幕中选择创建的 Azure 云

  3. 单击下一步

  4. 单击创建池

  5. 新建池: 屏幕的步骤 1: 设置下,对负载均衡算法选择一致哈希,将源 IP 地址作为哈希密钥。

  6. 要绑定监控器,请单击添加主动监控器,然后选择创建的自定义运行状况监控器。

  7. 单击下一步

  8. 单击启用 SSL,然后选择相应的 SSL 配置文件。

  9. 单击下一步

  10. 步骤 2: 服务器选项卡中,在选择服务器下单击选项“IP 组”。

  11. 选择之前创建的 UAG 服务器的 IP 组。

  12. 单击下一步

  13. 导航到步骤 3: 高级选项卡 > 步骤 4: 查看

  14. 单击下一步,然后单击保存

创建 Horizon L4 池

按照与创建 Horizon L7 池相同的步骤进行操作,创建名为 Horizon-l4-pool 的另一个池。

注:

将默认服务器端口配置为 443,并将负载均衡算法配置为“具有源 IP 地址的一致哈希”。



步骤 2: 服务器选项卡下,添加之前创建的 UAG 服务器的 IP 组。

步骤 3: 高级选项卡下,选择禁用端口转换以确保流量的目标端口不会更改为在第一个窗格中设置的默认服务器端口 (443)。

安装 L7 VIP 所需的 SSL 证书

SSL 连接将会在 NSX Advanced Load Balancer 虚拟服务中被终止。因此,必须将 SSL 证书分配给虚拟服务。建议安装由有效证书颁发机构签名的证书,而不要使用自签名证书。

NSX Advanced Load Balancer 中安装证书,并确保导入并链接 CA 证书。有关说明,请参阅VMware NSX Advanced Load Balancer 安装指南》中的“SSL 证书”主题。

注:

对于此设置,已安装一个名为 Horizon_Certificate 的证书。

创建新的 SE 组

创建新的 SE 组以对外部 UAG 进行负载均衡。

  1. 转到基础架构 > 服务引擎组,然后选择创建的 Azure 云。

  2. 单击创建服务引擎组

  3. 基本设置选项卡下,配置以下内容:



  4. 单击高级选项卡。

  5. 覆盖数据网络下,选择外部 UAG 所在的数据子网。

  6. 单击保存

启用 Azure 标准 ALB

要为服务引擎组配置标准 ALB 标记覆盖,请执行以下操作:

[admin:10-52-0-71]: > configure serviceenginegroup ExternalUAGs

[admin:10-52-0-71]: serviceenginegroup> use_standard_alb

[admin:10-52-0-71]: serviceenginegroup> save

为虚拟服务创建 SSL 配置文件

使用下面给出的配置为虚拟服务创建 SSL 配置文件:

  1. 导航到模板 > SSL/TLS 配置文件 > 创建

  2. 选择应用程序配置文件

  3. 输入以下详细信息:

    • 接受的版本:TLS 1.1 和 1.2

    • 单击密码选项卡,然后从密码列表中选择以下内容:

      TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

      TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  4. 单击保存

创建 L7 虚拟服务

要创建新的 L7 虚拟服务,请执行以下操作:

  1. NSX Advanced Load Balancer UI 中,导航到应用程序 > 虚拟服务

  2. 单击创建虚拟服务 > 高级设置

  3. 使用 System-Secure-HTTP-VDI 作为应用程序配置文件

  4. 按照如下所示配置虚拟服务:



  5. 单击下一步

  6. 导航到高级选项卡。

  7. 外部 UAG 选择 SE 组

  8. 单击下一步,然后单击保存

创建 L4 虚拟服务

创建另一个虚拟服务,该虚拟服务将与 L7 VIP 的虚拟服务共享同一个 IP 地址。这将确保只需为主协议和辅助协议提供一个虚拟 IP 地址。L7 虚拟服务将处理主协议和隧道,而 L4 虚拟服务将处理其他辅助协议。

要创建 L4 虚拟服务,请执行以下操作:

  1. 单击创建虚拟服务 > 高级设置

  2. 新建虚拟服务屏幕中,单击 VIP 地址下的切换到高级

  3. 选择作为用于共享 VIP 的虚拟服务创建的 L7 虚拟服务。

  4. 服务端口 > 服务下,单击切换到高级

  5. 为辅助协议添加以下端口号,如下所示:

    1. 添加 443 UDP 以覆盖 TCP/UDP,并使用 System-UDP-Fast-Path-VDI 作为配置文件

    2. 为 Blast 添加 8443

    3. 添加 8443 UDP 以覆盖 TCP/UDP,并使用 System-UDP-Fast-Path-VDI 作为配置文件

    4. 为 PCoIP 添加 4172

    5. 添加 4172 UDP 以覆盖 TCP/UDP,并使用 System-UDP-Fast-Path-VDI 作为配置文件



  6. 选择 Horizon-L4-Pool

  7. 单击下一步,然后导航到步骤 4: 高级选项卡。

  8. 外部 UAG 选择 SE 组

  9. 单击保存

使用 NSX Advanced Load Balancer 对内部 UAG 进行负载均衡

如果已在 Pod 中部署内部 UAG,则必须使用另一组 NSX Advanced Load Balancer 虚拟服务对这些 UAG 进行负载均衡。要将内部 UAG 的 NSX Advanced Load Balancer 服务引擎与外部 UAG 隔离,必须为内部 UAG 虚拟服务创建和使用单独的服务引擎组。

此外,由于内部 UAG 的前端 IP 驻留在数据子网中(而不是像外部 UAG 那样驻留在 DMZ 子网中,因此必须修改 SE 组属性以反映这一点)。

为内部 UAG 创建新的 SE 组,如下所示:





为内部 UAG 创建池、运行状况监控器和虚拟服务的过程与外部 UAG 的过程类似。有关更多信息,请参阅创建新的 SE 组

最佳实践

建议创建新的 SSL 配置文件并将同一个 SSL 配置文件绑定到虚拟服务,而不是使用默认的 SSL 配置文件来获得更高的安全等级。

要创建新的 SSL 配置文件,请执行以下操作:

  1. 导航到模板 > 安全性 > SSL/TLS 配置文件 > 创建 > 应用程序配置文件

  2. 新建 SSL/TLS 配置文件屏幕中,选择密码TLS 版本

  3. 启用 TLS 1.1TLS 1.2,以便向后兼容较旧的 Horizon Client。

  4. 单击保存

此配置文件可确保向后兼容旧客户端而没有任何问题,同时避免出现与安全相关的问题。

NSX Advanced Load Balancer 上配置单个 L4 虚拟服务

在此设计中,具有 L4 配置文件的单个虚拟服务将为所有协议提供服务。

NSX Advanced Load Balancer 上配置 L4 虚拟服务

可通过以下步骤在 NSX Advanced Load Balancer 上完成 L4 虚拟服务配置:

  1. 为 UAG 创建自定义运行状况监控器。

  2. 创建池

  3. 创建 L4 虚拟服务

创建池

  1. NSX Advanced Load Balancer UI 中,导航到应用程序 >

  2. 单击

  3. 通过添加必要的详细信息来配置池。

  4. 单击 +添加运行状况监控器,然后选择创建的 Horizon HTTPS 监控器

  5. 导航到步骤 3: 高级

  6. 选择禁用端口转换

  7. 单击下一步,然后单击保存

创建 L4 虚拟服务

  1. NSX Advanced Load Balancer UI 中,导航到应用程序 > 虚拟服务

  2. 单击创建虚拟服务 > 高级设置

  3. 新建虚拟服务: 屏幕中,输入虚拟服务名称和其他详细信息。

  4. 服务端口下面,单击切换到高级

  5. 为主协议和辅助协议添加以下端口号:

    1. 443(主 HTTPS 协议)

    2. 添加 443 UDP 以覆盖 TCP/UDP,并使用 System-UDP-Fast-Path-VDI 作为配置文件

    3. 8443 (Blast)

    4. 8443 UDP,用于覆盖 TCP/UDP,并使用 System-UDP-Fast-Path-VDI 作为配置文件

    5. 4172 (PCoIP)

    6. 4172 UDP,用于覆盖 TCP/UDP,并使用 System-UDP-Fast-Path-VDI 作为配置文件



    注:

    应用程序配置文件和池 (Horizon-L4-pool) 将被绑定到虚拟服务。

  6. 单击下一步,然后导航到步骤 4: 高级选项卡。

  7. 外部 UAG 选择 SE 组

  8. 单击保存

这样,配置就完成了,可以对 Horizon 使用 NSX Advanced Load Balancer 了。

在 Horizon Cloud Pod 的 UAG 配置设置中配置 NSX Advanced Load Balancer VIP

记下 NSX Advanced Load Balancer 虚拟服务的公共 IP,并在 Horizon Cloud Pod 的 UAG 配置设置中配置与公共 IP 相同的 IP。保存 Horizon Pod 配置,以便 UAG 上的 Blast 和 PCoIP URL 现在指向虚拟 IP。

注:
  • 确保已将 DNS 服务器正确配置为将 Horizon FQDN 解析为 NSX Advanced Load Balancer 虚拟 IP。

  • 与 VMware Horizon 运维团队合作,为刚刚创建的 VS 提供 NSX Advanced Load Balancer 虚拟服务 IP。运维团队会将此 IP 配置为 PCoIP URL。

  • 如果未使用内部 VS 的 NSX Advanced Load Balancer VS IP 更新 PCoIP URL,则通过内部客户端的 PCoIP 连接将失败。Blast 协议将不受影响。