注意
Kubernetes SIG Network和安全响应委员会宣布即将停用Ingress NGINX项目, 维护将于2026年3月结束。 目前,使用 NGINX 的应用程序路由加载项的 AKS 群集无需立即执行任何操作。 Microsoft将为应用程序路由加载项的NGINX Ingress资源的重要安全补丁提供正式支持,支持截止至2026年11月。
AKS 正在迁移到
- 应用程序路由扩展用户:生产工作负荷在 2026 年 11 月之前仍受全面支持。 迁移到 应用程序路由网关 API 实现,以获得基于网关 API 的入口流量管理体验。
-
OSS NGINX 用户 有多个选项:
- 迁移到 使用 NGINX 的应用程序路由加载项 ,在规划长期网关 API 迁移的同时,从官方支持(截至2026年11月)中受益。
- 迁移到 应用程序路由网关 API 实现,以获得基于网关 API 的入口流量管理体验。
- 迁移到 容器应用程序网关,其支持入口 API 和网关 API。
- 服务网格或高级入口要求:考虑 使用 Istio 服务网格加载项的网关 API 入口。 无需向工作负载中注入边车,即可将它用于处理入口流量。 如果需要请求标头和正文大小限制、Lua 脚本或速率限制,请查看 网关 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 (无静态 IP) | 不适用 |
| Azure 密钥保管库存储 SSL 证书 | 是 | 是 | 不适用 |
| Azure DNS 集成,用于管理 DNS 区域 | 是 | 是 | 不适用 |
何时使用每个入口控制器
下表列出了可以使用每个入口控制器的不同方案:
| 入口选项 | 何时使用 |
|---|---|
| 托管式 NGINX - 应用路由加载项 | • 群集中托管、可自定义且可缩放的 NGINX 入口控制器。 • 基本负载均衡和路由功能。 • 内部和外部负载均衡器配置。 • 静态 IP 地址配置。 • 与证书管理Azure 密钥保管库集成。 • 与用于公共和专用 DNS 管理的Azure DNS区域集成。 • 支持 Ingress API。 |
| 应用程序网关用于容器 | • Azure托管入口网关。 • 由控制器管理的灵活部署策略,或为容器自带应用程序网关。 • 高级流量管理功能,例如自动重试、可用区弹性、与后端目标之间的双向身份验证(mTLS)、流量分流/加权轮询以及自动扩缩容。 • 与证书管理Azure 密钥保管库集成。 • 与用于公共和专用 DNS 管理的Azure DNS区域集成。 • 支持入口和网关 API。 |
| Istio 入口网关 | • 根据 Envoy,在将 Istio 用于服务网格时。 • 高级流量管理功能,例如限流和熔断。 • 支持 mTLS。 |
注意
Istio 插件目前不支持将 Gateway API 用于 Istio 入站流量。
创建入口资源
应用程序路由加载项是在 AKS 中配置 Ingress 控制器的推荐方式,也是 AKS Automatic 中适用于大多数工作负载的首选托管式 Ingress 方案。 应用程序路由加载项是 AKS 的完全托管入口控制器,提供以下功能:
- 基于 Kubernetes NGINX Ingress 控制器,轻松配置托管式 NGINX Ingress 控制器。
- 与用于公共和专用区域管理的Azure DNS集成。
- SSL 终止,证书存储在Azure 密钥保管库中。
对于大多数生产工作负载,一开始采用这个默认选项是合适的。 如果需要自定义入口拓扑、Azure托管的入口或服务网格行为,则可以移动到其他入口选项之一。
有关应用程序路由加载项的详细信息,请参阅 应用程序路由加载项的托管 NGINX 入口。
客户端源 IP 地址保留
可配置入口控制器,以便在对 AKS 群集中的容器发出请求时保留客户端源 IP。 当入口控制器将客户端的请求路由到 AKS 群集中的容器时,该请求的原始源 IP 不可用于目标容器。 如果启用客户端源 IP 保留,则可以在请求标头中的 X-Forwarded-For 下使用客户端的源 IP。
如果在您的入口控制器上使用客户端源 IP 保留,则无法使用 TLS 传输。 其他服务,如 LoadBalancer 类型,可以使用客户端源 IP 保留和 TLS 透传功能。
这仍然是 AKS 自动和 AKS 标准版中的重要设计选择,因为源 IP 处理会影响可观测性、可审核性和应用程序行为,而不管群集模式如何。
若要了解有关客户端源 IP 保留的详细信息,请参阅 AKS 中 LoadBalancer Services 的客户端源 IP 保留的工作原理如何。