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