从 2019 年 9 月版本开始,对于使用该版本的清单版本或更高版本部署的新容器以及更新到该版本的清单版本或更高版本的容器,容器的管理子网还必须支持与 Microsoft Azure Database for PostgreSQL 服务端点进行的网络通信。在部署新容器或升级现有容器之前,您创建的容器管理子网必须启用 Microsoft.Sql 服务作为服务端点。部署或更新过程将检查子网是否具有端点,如果未在管理子网上启用端点,则不会继续执行该过程。除了启用该服务端点外,如果您的管理子网上具有防火墙或网络安全组 (NSG) 规则,则在部署新容器或升级现有容器之前,必须将其配置为允许 Microsoft Azure Database for PostgreSQL 服务的流量。

重要事项: 2019 年 12 月版本引入了一项功能,用于将容器的外部 Unified Access Gateway 配置部署到其自己的 VNet 中,而不是该容器的 VNet 中。使用该功能时,外部网关的 VNet 中的管理子网还必须遵循此要求,以使 Microsoft.Sql 服务在该子网上作为服务端点启用。

在 2019 年 9 月版本中,开始将 Microsoft Azure Database for PostgreSQL 服务作为 Microsoft Azure 中的 Horizon Cloud 容器的必需元素。如 Microsoft 文档中所述,Microsoft Azure Database for PostgreSQL 是一种完全托管的数据库即服务产品。在容器部署或更新过程中,使用单服务器部署类型将 Microsoft Azure Database for PostgreSQL 服务器资源部署到该容器的资源组中。该部署和更新过程还会自动将 VNet 规则添加到该容器的 VNet 中。此 VNet 规则会将 Microsoft Azure Database for PostgreSQL 服务器流量限制到该容器的管理子网。该容器与该 Microsoft Azure Database for PostgreSQL 服务器之间的通信将使用管理子网,这会对该容器的管理子网施加一些要求。

在该管理子网上,启用 Microsoft.Sql 服务作为服务端点

将已部署的 Microsoft Azure Database for PostgreSQL 服务器的流量限制到管理子网的 VNet 规则要求该子网已启用 Microsoft.Sql 服务端点。如果要让容器部署程序创建子网,则该部署程序需确保容器的管理子网在其创建的管理子网上已启用 Microsoft.Sql 服务端点。但是,当您自己创建管理子网时,在部署新容器或更新现有容器之前,必须确保该管理子网满足这些要求。以下屏幕截图是一个示例,说明了在哪里可使用 Microsoft Azure 门户对子网启用 Microsoft.Sql 服务作为服务端点。单击门户中的子网后,在服务端点部分中,从服务下拉列表中选择 Microsoft.Sql,然后进行保存。


Microsoft Azure 门户中子网的屏幕截图,其中显示在“服务”下拉列表中选择的 Microsoft.Sql 项。

您可以使用 Microsoft Azure 门户导航到管理子网,然后在服务下拉列表中选择 Microsoft.Sql。

确保您的防火墙或网络安全组允许容器与 Microsoft Azure Database for PostgreSQL 服务进行通信

Microsoft Azure 中的 Horizon Cloud 容器的 DNS 要求 中所列,在管理子网上,您必须为该管理子网配置网络规则,以允许容器与 Microsoft Azure Database for PostgreSQL 服务进行通信。在部署新容器或更新现有容器之前,您必须确保管理子网满足此要求。

如果您的防火墙或网络安全组支持使用服务标记指定访问权限,请使用以下操作之一来允许容器通信:

  • 全局 Azure SQL 服务标记:Sql
  • 用于部署容器的 Azure 区域的特定 SQL 服务标记:Sql.区域,如 Sql.WestUS

如果您的防火墙或网络安全组不支持使用服务标记指定访问权限,则可以使用在容器资源组中创建的数据库服务器资源的主机名。该服务器资源的名称采用以下格式:*.postgres.database.azure.com

有关安全组中服务标记的信息,请参阅 Microsoft Azure 文档主题服务标记