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

什么是适用于容器的应用程序网关?

适用于容器的应用程序网关是一个应用程序层(第 7 层)负载平衡和动态流量管理产品,用于在 Kubernetes 集群中运行的工作负载。 它扩展了 Azure 的应用程序负载均衡产品组合,是应用程序网关产品系列下的一个新产品。

适用于容器的应用程序网关是应用程序网关入口控制器 (AGIC) 的演变,这是一种 Kubernetes 应用程序,使 Azure Kubernetes 服务 (AKS) 客户能够使用 Azure 的本机应用程序网关应用程序负载均衡器。 在其当前形式中,AGIC 利用 Azure 资源管理器 (ARM) 监视 Kubernetes 资源子集的更改并将其应用于应用程序网关。

它是如何工作的?

适用于容器的应用程序网关由三个组件组成:

  • 适用于容器的应用程序网关资源
  • 前端
  • 关联

适用于容器的应用程序网关部署中还引用了以下依赖项:

  • 专用 IP 地址
  • 子网委托
  • 用户分配的托管标识

下图总结了适用于容器的应用程序网关的体系结构:

该图描述了来自 Internet 的流量进入适用于容器的应用程序网关并发送到 AKS 中的后端 Pod。

有关适用于容器的应用程序网关如何接受传入请求并将其路由到后端目标的详细信息,请参阅适用于容器的应用程序网关组件

功能和优势

适用于容器的应用程序网关在发布时提供了一些全新的功能,例如:

  • 流量拆分/加权轮循机制
  • 对后端目标的相互身份验证
  • Kubernetes 对入口和网关 API 的支持
  • 灵活的部署策略
  • 提高了性能,提供近乎实时的更新以添加或移动 Pod、路由和探测

适用于容器的应用程序网关为 AKS 集群提供了一个弹性且可扩展的入口,并包括一个新的数据平面以及具有新的 ARM API 集的控制平面,不同于现有的应用程序网关。 这些 API 不同于应用程序网关的当前实施。 适用于容器的应用程序网关位于 AKS 群集数据平面之外,负责入口。 该服务由 ALB 控制器组件管理,该组件在 AKS 群集内运行并遵循 Kubernetes 网关 API。

负载均衡功能

适用于容器的应用程序网关支持以下流量管理功能:

  • 自动重试
  • 自动缩放
  • 可用性区域复原能力
  • 自定义和默认运行状况探测
  • ECDSA 和 RSA 证书支持
  • gRPC
  • 标头重写
  • HTTP/2
  • HTTPS 流量管理:
    • SSL 终止
    • 端到端 SSL
  • 入口和网关 API 支持
  • 第 7 层 HTTP/HTTPS 请求转发基于前缀/完全匹配:
    • 主机名
    • 路径
    • 标头
    • 查询字符串
    • 方法
    • 端口(80/443)
  • 前端、后端或端到端的相互身份验证 (mTLS)
  • 服务器发送事件 (SSE) 支持
  • 流量拆分/加权轮循机制
  • TLS 策略
  • URL 重定向
  • URL 重写

部署策略

适用于容器的应用程序网关的管理有以下两种部署策略:

  • 自带 (BYO) 部署:在此部署策略中,适用于容器的应用程序网关资源、关联资源和前端资源的部署和生命周期是通过 Azure 门户、CLI、PowerShell、Terraform 等实现的,并在 Kubernetes 中的配置中引用。
    • 在网关 API 中:每次想要在 Kubernetes 中创建新的网关资源时,都应先在 Azure 中预配前端资源,并由网关资源引用。 前端资源的删除由 Azure 管理员负责,在删除 Kubernetes 中的网关资源时不会将其删除。
  • 由 ALB 控制器管理:在此部署策略中,在 Kubernetes 中部署的 ALB 控制器负责适用于容器的应用程序网关资源及其子资源的生命周期。 当在群集上定义 ApplicationLoadBalancer 自定义资源时,ALB 控制器会创建适用于容器的应用程序网关资源,其生命周期基于自定义资源的生命周期。
    • 在网关 API 中:每次创建引用 ApplicationLoadBalancer 资源的网关资源时,ALB 控制器都会预配新的前端资源,并根据网关资源的生命周期管理其生命周期。

支持的区域

适用于容器的应用程序网关目前在以下区域提供:

  • 澳大利亚东部
  • 加拿大中部
  • 印度中部
  • 美国中部
  • 东亚
  • 美国东部
  • 美国东部 2
  • 法国中部
  • 德国中西部
  • 韩国中部
  • 美国中北部
  • 北欧
  • 挪威东部
  • 美国中南部
  • 东南亚
  • 瑞士北部
  • 阿拉伯联合酋长国北部
  • 英国南部
  • 美国西部
  • 西欧

网关 API 的实施

ALB 控制器实施网关 APIv1 版本。

网关 API 资源 支持 注释
GatewayClass
网关 支持侦听器上的 HTTP 和 HTTPS 协议。 侦听器上允许的唯一端口是 80 和 443。
HTTPRoute
ReferenceGrant 目前支持此 API 的版本 v1alpha1

入口 API 的实施

ALB 控制器实施对入口的支持。

入口 API 资源 支持 注释
流入量 支持侦听器上的 HTTP 和 HTTPS 协议。

报告问题并提供反馈

有关反馈,请在 feedback.azure.com 中发布新想法 对于问题,请通过 Azure 门户上的适用于容器的应用程序网关资源提出支持请求。

定价和 SLA

有关适用于容器的应用程序网关定价信息,请参阅应用程序网关定价

有关适用于容器的应用程序网关 SLA 信息,请参阅联机服务的服务级别协议 (SLA)

新增功能

若要了解适用于容器的应用程序网关的新增功能,请参阅 Azure 更新

后续步骤