Azure 容器应用在运行自己的虚拟网络 的环境中运行。 创建环境时,以下几个关键注意事项会影响容器应用的网络能力:
环境选择
Azure 容器应用具有两种不同的环境类型,它们既有着许多相同的网络特征,也有着一些主要差别。
环境类型 | 支持计划类型 | 说明 |
---|---|---|
工作负载配置文件 | 消耗, 专用 | 支持用户定义的路由 (UDR)、通过 NAT 网关的流出量,以及在容器应用环境中创建专用终结点。 所需的最小子网大小为 /27 。 |
仅消耗量 | 消耗 | 不支持用户定义的路由 (UDR)、通过 NAT 网关的流出量、通过远程网关的对等互连或其他自定义流出量。 所需的最小子网大小为 /23 。 |
有关详细信息,请参阅 环境类型。
虚拟网络类型
默认情况下,容器应用与可通过 Internet 公开访问的 Azure 网络集成,并且只能与可访问 Internet 的终结点通信。 还可以选择在创建环境时提供现有的 VNet。 使用默认 Azure 网络或现有 VNet 创建环境后,无法更改网络类型。
如果需要 Azure 网络功能,请使用现有的 VNet,例如:
- 网络安全组
- 应用程序网关集成
- Azure 防火墙集成
- 控制来自容器应用的出站流量
- 访问虚拟网络内私有终结点后方的资源
如果使用现有的 VNet,则需要提供专用于部署的容器应用环境的子网。 此子网不适用于其他服务。
可访问性级别
您可以在环境级别配置您的容器应用是否允许公共入口或仅从您的 VNet 内部入口。
可访问性级别 | 说明 |
---|---|
外部 | 允许容器应用接受公共请求。 外部环境是使用虚拟 IP 在面向公众的外部 IP 地址上部署的。 |
内部 | 内部环境没有公共终结点,并且部署了映射到内部 IP 地址的虚拟 IP (VIP)。 内部终结点是 Azure 内部负载均衡器(ILB),IP 地址是从现有 VNet 的专用 IP 地址列表中颁发的。 |
公用网络访问
公用网络访问设置确定是否可从公共 Internet 访问容器应用环境。 创建环境后,是否可以更改此设置取决于环境的虚拟 IP 配置。 下表显示了公用网络访问的有效值,具体取决于环境的虚拟 IP 配置。
虚拟 IP | 支持的公用网络访问 | 说明 |
---|---|---|
外部 |
Enabled 、Disabled |
容器应用环境是使用可访问 Internet 的终结点创建的。 公用网络访问设置确定是通过公共终结点接受还是仅通过专用终结点接受流量,以及创建环境后是否可以更改公用网络访问设置。 |
内部 | Disabled |
容器应用环境是在不使用可访问 Internet 的终结点的情况下创建的。 无法更改公用网络访问设置以接受来自 Internet 的流量。 |
要在 Azure 容器应用环境中创建专用终结点,必须将公用网络访问设置为 Disabled
。
公用网络访问标志支持 Azure 网络策略。
入口配置
在 ingress 部分下,可以配置以下设置:
入口:可以为容器应用启用或禁用入口。
入口流量:可以从任意位置接受到容器应用的流量,也可以将其限制为来自同一容器应用环境中的流量。
流量拆分规则:可以在应用程序的不同修订之间定义流量拆分规则。 有关详细信息,请参阅流量拆分。
有关不同网络方案的详细信息,请参阅 Azure 容器应用中的入口。
入站功能
功能 / 特点 | 了解如何做 |
---|---|
入口 配置流入量 |
控制将外部和内部流量路由到容器应用。 |
高级入口 | 配置高级入口设置,例如对入口和空闲超时的工作负荷配置文件支持。 |
IP 限制 | 按 IP 地址限制到容器应用的入站流量。 |
客户端证书身份验证 | 为容器应用配置客户端证书身份验证(也称为相互 TLS 或 mTLS)。 |
流量拆分 蓝/绿部署 |
在您的容器应用的各个活动修订版之间分配传入流量。 |
会话相关性 | 将来自客户端的所有请求路由到您容器应用的同一副本。 |
跨源资源共享 (CORS) | 为容器应用启用 CORS,该应用允许通过浏览器向与页面源不匹配的域发出的请求。 |
专用终结点 | 使用专用终结点安全地访问 Azure 容器应用,而无需将其公开到公共 Internet。 |
与 Azure Front Door 集成 | 使用专用链接(而不是公共 Internet)直接从 Azure Front Door 连接到 Azure 容器应用。 |
出站功能
功能 / 特点 | 了解如何做 |
---|---|
使用 NSG 保护现有 VNet | 使用网络安全组(NSG)保护容器应用环境 VNet。 |
教程
教程 | 了解如何做 |
---|---|
使用虚拟网络 | 使用虚拟网络。 |
配置 WAF 应用程序网关 | 配置 WAF 应用程序网关。 |
启用用户定义的路由(UDR) | 启用用户定义的路由(UDR)。 |
使用专用终结点 | 使用专用终结点安全地访问 Azure 容器应用,而无需将其公开到公共 Internet。 |
与 Azure Front Door 集成 | 使用专用链接(而不是公共 Internet)直接从 Azure Front Door 连接到 Azure 容器应用。 |
环境安全
你可以执行以下操作,完全保护你的入口/出口网络流量:
在工作负载配置文件环境中创建内部容器应用环境。 有关步骤,请参阅使用 Azure CLI 管理工作负荷配置文件。
将容器应用与应用程序网关集成。
配置 UDR 以通过 Azure 防火墙路由所有流量。
HTTP 边缘代理行为
Azure 容器应用使用边缘 HTTP 代理来终止传输层安全性(TLS),并将请求路由到每个应用程序。
HTTP 应用程序根据 HTTP 请求和连接的数量进行缩放。 Envoy 在群集内路由内部流量。
如果客户端连接需要升级,下游连接支持 HTTP1.1 和 HTTP2,Envoy 会自动检测和升级连接。
门户依赖项
Azure 容器应用中的每个应用都有两个 URL。
容器应用运行时最初生成用于访问应用的完全限定域名 (FQDN)。 有关容器应用的 FQDN,请参阅 Azure 门户中容器应用的概述窗口中应用程序 URL。
还会为你生成第二个 URL。 此位置授予对日志流式处理服务和控制台的访问权限。 如有必要,可以将 https://azurecontainerapps.dev/
添加到防火墙或代理的允许列表中。
端口和 IP 地址
为入站连接公开了以下端口。
协议 | 端口 |
---|---|
HTTP/HTTPS | 80、443 |
IP 地址分为以下类型:
类型 | 说明 |
---|---|
公共入站 IP 地址 | 用于外部部署中的应用程序流量,以及内部和外部部署中的管理流量。 |
出站公共 IP | 用作离开虚拟网络的出站连接的“来源”IP。 这些连接不会通过 VPN 路由。 出站 IP 可能会随时间而变。 仅支持在工作负载配置文件环境中使用 NAT 网关或其他代理来处理来自容器应用环境的出站流量。 |
内部负载均衡器 IP 地址 | 此地址仅存在于内部环境。 |