从 2019 年 9 月的季度服务版本开始,Microsoft Azure 中 Horizon Cloud 容器的架构支持容器的高可用性。由容器部署程序部署的 2019 年 9 月服务版本之后的新容器以及更新至清单版本 1600 或更高版本的较旧容器,均将全部获取此最新的容器架构。此容器架构包括一个 Microsoft Azure Database for PostgreSQL 服务器资源、一个 Microsoft Azure 负载均衡器和一个 Microsoft Azure 可用性集。在此架构的容器上启用高可用性时,会将一个额外的容器管理器虚拟机添加到该容器中,这样总共就有两个容器管理器虚拟机连接到 Microsoft Azure 负载均衡器。通过这种配置,即使其中一个管理器虚拟机遇到问题,该容器也能继续运行。如果其中一个管理器虚拟机出现故障,则所有流量会自动路由到另一个管理器虚拟机,而无需任何手动干预。

对于新容器,您可以从一开始部署容器时就启用高可用性,也可以在关闭高可用性的情况下部署容器,然后再启用高可用性。对于已更新至可获取此最新容器架构的容器清单的现有容器,更新过程不会自动在容器上启用高可用性。在以下两项要求均已满足后,可以在更新的容器上启用高可用性:

  • 在该容器上完成了容器更新过程
  • 在容器的所有现有映像虚拟机、场内支持 RDSH 的虚拟机和 VDI 桌面虚拟机上,将代理更新到与更新的容器兼容的代理版本

容器的详细信息页面会报告对该容器是启用还是禁用了高可用性。有关在已禁用高可用性的容器上启用高可用性的步骤,请参阅在 Microsoft Azure 中的 Horizon Cloud 容器上启用高可用性

Microsoft Azure 中容器的高可用性设计

除了具有两个容器管理器虚拟机外,该容器还具有一个 Microsoft Azure 负载均衡器资源、一个 Microsoft Azure 可用性集以及一个 Microsoft Azure Database for PostgreSQL 服务器资源。这种设计可以为容器实现整体弹性,如果其中一个容器管理器虚拟机出现问题或发生故障,则会进行故障切换。

重要事项: 在 2019 年 9 月版本级别新创建的容器始终使用 Microsoft Azure Database for PostgreSQL 服务器资源、Microsoft Azure 负载均衡器和可用性集进行部署。即使在容器部署向导中关闭 高可用性选项,所生成的容器也具有这些新的容器架构元素。此外,在以前版本中创建且后来更新到 2019 年 9 月版本级别的容器也会采用这种新设计(即,具有 Microsoft Azure Database for PostgreSQL 服务器资源、Microsoft Azure 负载均衡器和可用性集),即使在更新过程中不会自动启用高可用性也是如此。对于使用清单版本 1600 或更高版本的所有容器,利用此容器设计中的标准化过程,可以在已部署的容器上轻松启用高可用性。仅当在容器上启用了高可用性功能后,才会部署第二个容器管理器虚拟机。

这些资源位于容器资源组中,您可以在登录到 Microsoft Azure 门户后在订阅中查看其详细信息。有关识别容器资源组的信息,请参阅为 Microsoft Azure 中部署的容器创建的资源组

Microsoft Azure 可用性集
如 Microsoft Azure 文档中所述, Microsoft Azure 负载均衡器与可用性集的组合提供了最高级别的应用程序弹性。在每个 Microsoft Azure 区域中,可用性集( 在 Microsoft Azure 文档中有时也称为可用性区)是故障域和更新域的组合。通过使用可用性集,每个容器管理器虚拟机均部署在同一 Microsoft Azure 数据中心内的单独物理硬件上。可用性集可强制管理器虚拟机驻留在单独的物理硬件上。通过这种后端硬件隔离方式,可以最大程度地降低管理器虚拟机同时出现停机的可能性。仅当整个 Microsoft Azure 数据中心出现故障时,才会同时影响两个管理器虚拟机。
Microsoft Azure 负载均衡器
部署的负载均衡器资源将连接到容器的租户子网。此负载均衡器用于根据容器部署程序配置的运行状况探查和规则将流量路由到容器的管理器虚拟机。系统会将管理器虚拟机添加到此负载均衡器的后端池中。其中一个管理器虚拟机将担当活动代理角色,使得最终用户客户端连接到容器置备的桌面和应用程序。负载均衡器根据定义的规则以及后端池中的管理器虚拟机运行状况探查来确定代理关联性。根据已确定的代理关联性,负载均衡器将所有代理流量无缝路由到担当活动代理角色的管理器虚拟机,直到发生故障切换。然后,另一个管理器虚拟机将成为活动代理,并且负载均衡器将代理请求路由到该虚拟机。如果发生此故障切换,系统会向管理控制台发送一条通知,告知哪个管理器虚拟机成为了活动代理。

容器负载均衡器位于最终用户客户端连接请求与容器管理器虚拟机之间。如果为容器配置有网关配置,则来自 Unified Access Gateway 实例的流量将路由到容器的 Microsoft Azure 负载均衡器。该 Azure 负载均衡器将该流量路由到担当活动代理角色的管理器虚拟机。如果容器没有进行网关配置,并且您已为该容器配置了直接连接(如通过 VPN),则最终用户客户端连接将转到容器的 Microsoft Azure 负载平衡器,然后由负载均衡器将流量路由到担当活动代理角色的管理器虚拟机。

Microsoft Azure Database for PostgreSQL - 单服务器
容器具有一个使用 单服务器部署选项的 Microsoft Azure Database for PostgreSQL 服务器。通过使用此服务器,可以对容器操作所需的数据进行集中,并且无需在管理器虚拟机中使用数据复制。在当前版本中,将使用以下配置:
  • PostgreSQL 版本 10
  • 内存优化
  • 计算的代:第 5 代
  • vCore:2
  • 存储:10 GB
  • 自动增长:否
  • 备份存储:本地冗余
有关其内存优化配置的信息,请参阅以下 Microsoft 文档:

在此版本级别创建的容器或更新到此版本级别的容器在 Microsoft Azure 订阅中对费用产生的影响

此版本中支持高可用性所需的元素在 Microsoft Azure 订阅中会产生一定的费用影响。在此版本级别新创建的所有容器以及更新到此版本级别的容器会因为使用托管的 Microsoft Azure Database for PostgreSQL 服务器而产生一些费用。此外,启用了高可用性的容器还会因为运行额外的管理器虚拟机而产生一些费用。在编写本文时,对于为在此版本级别创建或更新到此版本级别的所有容器所部署的 Azure 负载均衡器或可用性集,不存在使用费用。

有关在当前版本中使用的上述 Microsoft Azure Database for PostgreSQL 配置的定价预估值,请参阅https://azure.microsoft.com/en-us/pricing/details/postgresql/server/