跳到主要内容
版本:3.9.x

Ingress 与 Gateway API 支持

本文档概述了 API7 Ingress Controller 支持的 Kubernetes Gateway API 和 Ingress API 资源。可作为参考,了解当前已实现了哪些资源。

有关如何以及何时使用这些资源,请参见配置示例

Gateway API

资源支持级别

下表概述了当前实现中对 Kubernetes Gateway API 资源的支持级别。每个资源根据其核心(Core)、扩展(Extended)和特定于实现(Implementation-Specific)的支持级别以及相应的 API 版本进行分类。

资源核心 (Core)扩展 (Extended)特定于实现 (Implementation-Specific)API 版本
GatewayClass支持N/A不支持v1
Gateway部分支持部分支持不支持v1
HTTPRoute支持部分支持不支持v1
GRPCRoute支持支持不支持v1
ReferenceGrant支持不支持不支持v1beta1
TLSRoute支持支持不支持v1alpha2
TCPRoute支持支持不支持v1alpha2
UDPRoute支持支持不支持v1alpha2
BackendTLSPolicy不支持不支持不支持v1alpha3

有关配置选项的完整列表,请参阅 Gateway API 参考。请注意,某些字段不受支持或仅部分支持。

不支持 / 部分支持的字段

以下字段在 Gateway API 规范中已指定,但在 APISIX Ingress Controller 中尚未完全实现或不支持。

HTTPRoute

字段状态备注
spec.timeouts不支持不支持该字段,因为 ADC 提供了更细粒度的超时配置(连接、读取、写入),而 spec.timeouts 仅允许通用的总超时和上游超时,因此无法直接映射。要配置路由超时,可以使用 BackendTrafficPolicy
spec.retries不支持不支持该字段,因为 APISIX 不支持重试中的功能。要配置路由重试,可以使用 BackendTrafficPolicy
spec.sessionPersistence不支持APISIX 不支持 cookie 生命周期的配置。作为替代,你可以使用 chash 负载均衡器
spec.rules[].backendRefs[].filters[]不支持未实现 BackendRef 级别的过滤器,因为数据面不支持在此级别进行过滤;仅支持规则级别的过滤器(spec.rules[].filters[])。

Gateway

字段状态备注
spec.listeners[].port不支持*该配置是必需的,但会被忽略。这是由于数据面的限制:它无法动态打开新端口。由于 Ingress Controller 不管理数据面部署,因此无法自动更新配置或重启数据面来应用端口更改。
spec.listeners[].tls.certificateRefs[].group部分支持仅支持 "";其他组值会导致验证失败。
spec.listeners[].tls.certificateRefs[].kind部分支持仅支持 Secret
spec.listeners[].tls.mode部分支持实现了 Terminate;对于 Gateway 监听器,实际上不支持 Passthrough
spec.addresses不支持控制器不读取或响应 spec.addresses

HTTP Route 过滤器

Ingress Controller 将 HTTPRoute 资源中的标准 Gateway API 过滤器映射到相应的插件:

Gateway API 过滤器APISIX 插件
RequestHeaderModifierproxy-rewrite
RequestRedirectredirect
RequestMirrorproxy-mirror
URLRewriteproxy-rewrite
ResponseHeaderModifierresponse-rewrite
CORScors
ExtensionRef通过 PluginConfig 自定义插件

当同时使用标准过滤器和 ExtensionRef(引用 PluginConfig CRD)时:

  • 如果先应用标准过滤器,PluginConfig 会覆盖任何重叠的插件设置。
  • 如果先应用 PluginConfig,标准过滤器将合并到其配置中,并且任何重叠的字段都会被过滤器覆盖。

Ingress

  • networking.k8s.io/v1

支持的资源

该控制器支持标准的 Kubernetes Ingress API,包括:

支持基于主机和路径的基本路由。可能不支持高级注解或非标准扩展。

有关支持的注解的完整列表,请参阅注解