-
对容器应用使用消耗工作负载配置文件时,IP 地址分配的行为与在仅限消耗环境中运行时的行为相同。 随着应用的扩展,将为每个新副本分配一个新的 IP 地址。
-
对容器应用使用专用工作负载配置文件时,将为每个节点分配 1 个 IP 地址。
创建容器应用环境时,需要为单个子网提供资源 ID。
如果使用 CLI,则定义子网资源 ID 的参数为
infrastructure-subnet-resource-id
。 子网托管基础结构组件和用户应用容器。
此外,如果将 Azure CLI 与仅限消耗环境配合使用,并且定义了
platformReservedCidr
范围,则这两个子网不得与 中
platformReservedCidr
定义的 IP 范围重叠。
子网地址范围限制
子网地址范围不能与 AKS 保留的以下范围重叠:
-
169.254.0.0/16
-
172.30.0.0/16
-
172.31.0.0/16
-
192.0.2.0/24
此外,工作负载配置文件环境中的容器应用会保留以下地址:
-
100.100.0.0/17
-
100.100.128.0/19
-
100.100.160.0/19
-
100.100.192.0/19
工作负载配置文件环境(预览版)支持通过 NAT 网关 (UDR) 和控制出口的用户定义的路由。 在仅限消耗的环境中,不支持这些功能。
用户定义的路由 (UDR) - 预览版
在 Azure 容器应用中将 UDR 与 Azure 防火墙 配合使用时,需要将某些 FQDN 和服务标记添加到防火墙的允许列表中。 若要了解详细信息,请参阅
使用 Azure 防火墙 配置 UDR
。
可以在工作负载配置文件体系结构上使用 UDR,以通过 Azure 防火墙或其他网络设备限制来自容器应用的出站流量。 UDR 配置是在容器应用环境范围之外完成的。 外部环境不支持 UDR。
在创建虚拟网络时,Azure 将为虚拟网络创建一个默认路由表。 通过实现用户定义的路由表,可以控制流量在虚拟网络中的路由方式。 例如,你可以创建一个 UDR,用于将所有流量路由到防火墙。
使用 Azure 防火墙 配置 UDR - 预览版:
UDR 仅在工作负荷配置文件环境中受支持。 以下应用程序和网络规则必须添加到防火墙的允许列表中,具体取决于你使用的资源。
有关如何为容器应用设置 UDR 以使用 Azure 防火墙限制出站流量的指南,请访问
容器应用和 Azure 防火墙
。
Azure 防火墙 - 应用程序规则
应用程序规则基于应用程序层允许或拒绝流量。 根据方案需要以下出站防火墙应用程序规则。
mcr.microsoft.com
,*
.data.mcr.microsoft.com
Azure 容器应用使用这些适用于 Microsoft 容器注册表的 FQDN (MCR) ,在将 Azure 容器应用与Azure 防火墙配合使用时,必须将这些应用程序规则或 MCR 的网络规则添加到允许列表中。
Azure 容器注册表 (ACR)
Your-ACR-address
,*
.blob.windows.net
将 Azure 容器应用与 ACR 和 Azure 防火墙 配合使用时,需要这些 FQDN。
Azure Key Vault
Your-Azure-Key-Vault-address
,
login.microsoft.com
除了 Azure 密钥保管库的网络规则所需的服务标记外,还需要这些 FQDN。
Docker Hub注册表
hub.docker.com
、
registry-1.docker.io
、production.cloudflare.docker.com
如果使用
Docker Hub注册表
并希望通过防火墙访问它,则需要将这些 FQDN 添加到防火墙。
Azure 防火墙 - 网络规则
网络规则基于网络和传输层允许或拒绝流量。 根据方案需要以下出站防火墙网络规则。
MicrosoftContainerRegistry
、
AzureFrontDoorFirstParty
Azure 容器应用使用这些 Microsoft 容器注册表的服务标记 (MCR) ,在将 Azure 容器应用与 Azure 防火墙 配合使用时,必须将这些网络规则或 MCR 的应用程序规则添加到允许列表中。
Azure 容器注册表 (ACR)
AzureContainerRegistry
将 ACR 与 Azure 容器应用配合使用时,需要配置Azure 容器注册表使用的这些应用程序规则。
Azure Key Vault
AzureKeyVault
、
AzureActiveDirectory
除了 Azure 密钥保管库 的应用程序规则的 FQDN 外,还需要这些服务标记。
NAT 网关集成 - 预览版
可以使用 NAT 网关简化工作负载配置文件环境中虚拟网络中出站 Internet 流量的出站连接。 NAT 网关用于提供静态公共 IP 地址,因此在容器应用子网上配置 NAT 网关时,来自容器应用的所有出站流量都将通过 NAT 网关的静态公共 IP 地址进行路由。
锁定容器应用环境
借助工作负载配置文件环境 (预览版) ,可以完全保护入口/出口网络流量。 为此,应使用以下功能:
-
在工作负载配置文件环境中创建内部容器应用环境。 有关步骤,请参阅
此处
。
-
将容器应用与应用程序网关集成。 有关步骤,请参阅
此处
。
-
配置 UDR 以通过Azure 防火墙路由所有流量。 有关步骤,请参阅
此处
。
-
自定义 DNS:如果 VNet 使用自定义 DNS 服务器而非默认的 Azure 提供的 DNS 服务器,请将 DNS 服务器配置为将未解析的 DNS 查询转发给
168.63.129.16
。
Azure 递归解析程序
使用此 IP 地址解析请求。 配置 NSG 或防火墙时,请勿阻止该
168.63.129.16
地址,否则容器应用环境将不起作用。
-
VNet 范围入口:如果你打算在内部容器应用环境中使用 VNet 范围
入口
,请通过以下方式之一配置域:
-
非自定义域:如果不打算使用自定义域,请创建一个专用 DNS 区域,将容器应用环境的默认域解析为容器应用环境的静态 IP 地址。 可以使用
Azure 专用 DNS
或自己的 DNS 服务器。 如果使用 Azure 专用 DNS,请创建一个名为 的专用 DNS区域,作为容器应用环境的默认域 (
<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io
) ,其中包含一条
A
记录。 该 A 记录包含容器应用环境的名称
*<DNS Suffix>
和静态 IP 地址。
-
自定义域:如果打算使用自定义域,请使用可公开解析的域,
添加自定义域和证书
到容器应用。 此外,创建将顶点域解析为容器应用环境的静态 IP 地址的专用 DNS 区域。 可以使用
Azure 专用 DNS
或自己的 DNS 服务器。 如果使用 Azure 专用 DNS,请创建一个名为顶点域的专用 DNS 区域,其中包含指向容器应用环境的静态 IP 地址的
A
记录。
可以在 Azure 门户中查找容器应用环境的静态 IP 地址(位于容器应用页的“自定义 DNS 后缀”中,也可以使用 Azure CLI
az containerapp env list
命令来查找。
托管的资源
在你将某个内部或外部环境部署到自己的网络中时,会在托管环境的 Azure 订阅中创建一个新资源组。 此资源组包含 Azure 容器应用平台管理的基础结构组件,请不要修改它。
仅消耗环境
默认情况下,在托管环境的 Azure 订阅中创建的资源组的名称带有
MC_
前缀,在创建容器应用期间
无法
自定义资源组名称。 资源组包含专门用于从环境和负载均衡器进行出站连接的公共 IP 地址。
除了
Azure 容器应用账单
,还需要为下列项付费:
-
一个用于出口的标准静态
公共 IP
。 如果由于 SNAT 问题需要更多个 IP 用于出口,请
创建支持票证以请求替代
。
-
如果使用内部环境,则为两个标准
负载均衡器
;如果使用外部环境,则为一个标准
负载均衡器
。 每个负载均衡器的规则少于 6 条。 已处理的数据 (GB) 的成本包括用于管理操作的流入量和流出量。
工作负荷配置文件环境
默认情况下,在托管环境的 Azure 订阅中创建的资源组名称以
ME_
为前缀,在创建容器应用环境期间可以自定义该资源组的名称。 对于外部环境,该资源组包含一个专门用来与外部环境和负载均衡器建立入站连接的公共 IP 地址。 对于内部环境,该资源组仅包含负载均衡器。
除了
Azure 容器应用账单
,还需要为下列项付费:
-
一个用于外部环境中入口的标准静态
公共 IP
和一个标准
负载均衡器
。
-
已处理的数据 (GB) 的成本包括用于管理操作的流入量和流出量。
-
使用外部环境进行部署
-
使用内部环境进行部署