你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Kubernetes 服务 (AKS) 中的 Ingress

注意

Kubernetes SIG 网络和安全响应委员会宣布即将停用入口 NGINX 项目,维护将于 2026 年 3 月结束。 目前,使用 NGINX 的应用程序路由加载项的 AKS 群集无需立即执行任何操作。 Microsoft 将在 2026 年 11 月之前为应用程序路由扩展 NGINX 入口资源提供关键安全补丁的官方支持。

AKS 正与上游 Kubernetes 保持一致,将网关 API 作为入口和 L7 流量管理的长期标准。 建议根据当前设置开始规划迁移路径:

AKS 中的 Ingress 是一种 Kubernetes 资源,用于管理群集内服务的外部类 HTTP 流量访问。 AKS 入口可以提供负载均衡、SSL 终止和基于名称的虚拟托管等服务。 有关 Kubernetes 入口的详细信息,请参阅 Kubernetes 入口文档

对于大多数生产工作负载,首先使用 AKS Automatic。 AKS Automatic 是 AKS 中面向生产环境的推荐默认选项,可为网络、扩缩容、安全、监控和升级提供托管式默认配置。 对于入口,这意味着可以从托管入口路径开始,并且只有在需要更深入地控制拓扑、路由行为或服务网格集成时,才能移动到更专用的选项。

如果需要对入口控制器选择、部署拓扑或高级网络集成进行更明确的控制,请使用 AKS Standard。

AKS 群集模式和入口

AKS 支持两种群集模式:

  • AKS 自动模式:适合作为大多数生产工作负载的推荐起点。 它降低了运营开销,并为入口及相关网络组件提供了托管默认设置。
  • AKS 标准版:当你需要对入口控制器的托管方式、服务暴露和高级流量管理方案进行明确控制时,它是最佳选择。

本文中的入口指南适用于这两种模式。 主要区别在于谁拥有更多平台默认值以及直接管理所需的自定义数量。

入口控制器

在管理应用程序流量时,入口控制器通过在第 7 层工作来提供高级功能。 它们可以基于入站 URL 将 HTTP 流量路由到不同的应用程序,从而支持更智能和灵活的流量分配规则。 例如,入口控制器可以根据 URL 路径将流量定向到不同的微服务,从而提高服务的效率和组织。

另一方面,创建 LoadBalancer 类型的服务会设置基础 Azure 负载均衡器资源。 此负载均衡器在第 4 层工作,通过指定端口将流量分发至服务层中的各 Pod。 但第 4 层服务不了解实际的应用程序,无法实现这些类型的复杂传递规则。

了解这两种方法之间的区别将有助于选择合适的工具来满足流量管理需求。

如果使用的是 AKS Automatic,请先从托管入口路径开始,仅在工作负荷需要它们时才使用更专用的选项。 在 AKS 标准版中,你可以更灵活地选择最适合体系结构的入口控制器和拓扑。

显示 AKS 群集中入口流量的示意图

比较入口选项

功能对比

下表列出了不同入口控制器选项之间的功能差异。 对于大多数生产 AKS 工作负荷,建议的默认路径是 AKS 自动中的托管入口方法,除非你特别需要自定义路由、服务网格集成或Azure托管的入口。

Feature 应用程序路由加载项 适用于容器的应用程序网关 Azure服务网格/Istio 服务网格
入口/网关控制器 NGINX 入口控制器 适用于容器的 Azure 应用程序网关 Istio 入口网关
应用程序接口 入口 API 入口 API 和网关 API Istio 入口 API
托管 群集中 Azure 托管 群集中
缩放 自动缩放 自动缩放 自动缩放
负载均衡 内部/外部 外部 内部/外部
SSL 终止 群集中 是:卸载和 E2E SSL 群集中
mTLS 不适用 是:前端和后端
静态 IP 地址 FQDN (无静态 IP) 不适用
Azure 密钥保管库 存储的 SSL 证书 不适用
用于 DNS 区域管理的 Azure DNS 集成 不适用

何时使用每个入口控制器

下表列出了可以使用每个入口控制器的不同方案:

入口选项 何时使用
托管式 NGINX - 应用路由加载项 • 群集中托管、可自定义且可缩放的 NGINX 入口控制器。
• 基本负载均衡和路由功能。
• 内部和外部负载均衡器配置。
• 静态 IP 地址配置。
• 与证书管理Azure 密钥保管库集成。
• 与用于公共和专用 DNS 管理的Azure DNS区域集成。
• 支持 Ingress API。
容器应用程序网关 • Azure 托管入口网关。
• 由控制器管理的灵活部署策略,或为容器自带应用程序网关。
• 先进的流量管理功能,如自动重试、可用性区域复原能力、后端目标的相互身份验证 (mTLS)、流量拆分/加权轮循机制以及自动缩放。
• 与证书管理Azure 密钥保管库集成。
• 与用于公共和专用 DNS 管理的Azure DNS区域集成。
• 支持入口和网关 API。
Istio 入口网关 • 根据 Envoy,在将 Istio 用于服务网格时。
• 高级流量管理功能,例如限流和熔断。
• 支持 mTLS。

注意

Istio 加载项目前不支持将网关 API 用于 Istio 入站流量

创建入口资源

应用程序路由加载项是在 AKS 中配置入口控制器的推荐方式,也是 AKS Automatic 中适用于大多数工作负载的首选托管式入口路径。 应用程序路由加载项是 AKS 的完全托管入口控制器,提供以下功能:

  • 轻松配置基于 Kubernetes NGINX 入口控制器的托管 NGINX 入口控制器。
  • 与 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 保留,请参阅如何将客户端源 IP 保留用于 AKS 中的 LoadBalancer 服务