重要
Kubernetes SIG 网络和安全响应委员会宣布即将停用入口 NGINX 项目,维护将于 2026 年 3 月结束。 目前,使用 NGINX 的应用程序路由附加组件的 AKS 群集无需立即执行任何操作。 Microsoft将在 2026 年 11 月前为应用程序路由加载项 NGINX 入口资源提供关键安全修补程序的官方支持。
AKS 正在迁移到
- 应用程序路由加载项用户:生产工作负荷将继续得到全面支持,直至2026年11月。 AKS 将继续通过网关 API 对齐方式不断演变应用程序路由加载项。 无需移动到其他入口产品。
-
OSS NGINX 用户 有多个选项:
- 迁移到 NGINX 的应用程序路由加载项,以便在计划长期的网关 API 迁移时,从官方支持中受益直至 2026 年 11 月。
- 服务网格用户:如果计划采用服务网格,请考虑 基于 Istio 的服务网格加载项。 今天使用 Istio 入口,计划在正式发布为 GA 时迁移到 Istio 网关 API 支持。
AKS 中的 Ingress 是一种 Kubernetes 资源,用于管理群集内服务的外部类 HTTP 流量访问。 AKS 入口可以提供负载均衡、SSL 终止和基于名称的虚拟托管等服务。 有关 Kubernetes 入口的详细信息,请参阅 Kubernetes 入口文档。
入口控制器
管理应用流量时,Ingress 控制器通过在第 7 层运行提供高级功能。 它们可以基于入站 URL 将 HTTP 流量路由到不同的应用程序,从而支持更智能和灵活的流量分配规则。 例如,入口控制器可以根据 URL 路径将流量定向到不同的微服务,从而提高服务的效率和组织。
另一方面,创建 LoadBalancer 类型的服务会设置基础 Azure 负载均衡器资源。 该负载均衡器在第 4 层工作,将流量分发到您的服务中的 Pod 上的指定端口。 但第 4 层服务不了解实际的应用程序,无法实现这些类型的复杂传递规则。
了解这两种方法之间的区别将有助于选择合适的工具来满足流量管理需求。
比较入口选项
下表列出了不同入口控制器选项之间的功能差异:
| 功能 | 应用路由插件 | 适用于容器的应用程序网关 | Azure 服务网格/基于 Istio 的服务网格 |
|---|---|---|---|
| 入口/网关控制器 | NGINX 入口控制器 | 适用于容器的 Azure 应用程序网关 | Istio 入口网关 |
| 应用程序接口 | 入口 API | 入口 API 和网关 API | Istio 入口 API |
| 托管 | 群集中 | Azure 托管 | 群集中 |
| 缩放 | 自动缩放 | 自动缩放 | 自动缩放 |
| 负载均衡 | 内部/外部 | 外部 | 内部/外部 |
| SSL 终止 | 群集中 | 是:卸载和 E2E SSL | 群集中 |
| mTLS | 不适用 | 是:前端和后端 | 不适用 |
| 静态 IP 地址 | 不适用 | FQDN | 不适用 |
| Azure Key Vault 存储的 SSL 证书 | 是 | 是 | 不适用 |
| 用于 DNS 区域管理的 Azure DNS 集成 | 是 | 是 | 不适用 |
下表列出了可以使用每个入口控制器的不同方案:
| 入口选项 | 何时使用 |
|---|---|
| 托管 NGINX - 应用程序路由加载项 | • 群集中托管、可自定义且可缩放的 NGINX 入口控制器。
• 基本负载均衡和路由功能。 • 内部和外部负载均衡器配置。 • 静态 IP 地址配置。 • 与 Azure Key Vault 集成,以便进行证书管理。 • 与 Azure DNS 区域集成,以便进行公共和专用 DNS 管理。 • 支持 Ingress API。 |
| 适用于容器的应用程序网关 | • Azure 托管入口网关。
• 由控制器管理的灵活部署策略,或自带适用于容器的应用程序网关。 • 高级流量管理功能,例如自动重试、可用性区域复原、对后端目标进行相互身份验证 (mTLS)、流量拆分/加权轮循机制和自动缩放。 • 与 Azure Key Vault 集成,以便进行证书管理。 • 与 Azure DNS 区域集成,以便进行公共和专用 DNS 管理。 • 支持入口和网关 API。 |
| Istio 入口网关 | • 根据 Envoy,在将 Istio 用于服务网格时。
• 高级流量管理功能,例如速率限制和断路。 • 对 mTLS 的支持 |
注意
用于Istio 入口流量的网关 API 尚不支持 Istio 插件,但目前正在积极开发中。
创建入口资源
建议使用应用程序路由加载项在 AKS 中配置入口控制器。 应用程序路由加载项是 Azure Kubernetes 服务 (AKS) 的完全托管入口控制器,提供以下功能:
轻松配置基于 Kubernetes NGINX 入口控制器的托管 NGINX 入口控制器。
与 Azure DNS 集成,以便进行公共区域和专用区域管理。
SSL 终止,证书存储在 Azure Key Vault 中。
有关应用程序路由加载项的更多信息,请参阅应用程序路由加载项托管的 NGINX 入口。
客户端源 IP 地址保留
可配置入口控制器,以便在对 AKS 群集中的容器发出请求时保留客户端源 IP。 当入口控制器将客户端的请求路由到 AKS 群集中的容器时,该请求的原始源 IP 不可用于目标容器。 如果启用客户端源 IP 保留,则可以在请求标头中的 X-Forwarded-For 下使用客户端的源 IP。
如果在您的入口控制器上使用客户端源 IP 保留,则无法使用 TLS 传输。 其他服务,如 LoadBalancer 类型,可以使用客户端源 IP 保留和 TLS 透传功能。
若要详细了解客户端源 IP 保留,请参阅如何将客户端源 IP 保留用于 AKS 中的 LoadBalancer 服务。