Ingress Controller 文档
本文档适用于两个相关工具:API7 Ingress Controller 和 APISIX Ingress Controller。API7 Ingress Controller 用于 API7 企业版,APISIX Ingress Controller 用于开源 Apache APISIX。
二者是不同的工具,但资源使用方式和功能设计保持一致。部分功能可能会因为产品发布节奏不同而在不同时间可用;如果存在差异,文档会在对应位置明确标注。
简介
API7 / APISIX Ingress Controller(AIC)是 Kubernetes Ingress Controller,可将 Kubernetes 资源(例如 Ingress、Gateway API 和 APISIX 自定义 CRD)转换为 API7 / APISIX 网关配置。借助 AIC,你可以直接通过 Kubernetes 以声明式方式管理路由、SSL、插件、上游和其他网关资源。
如果符合以下任一场景,建议使用 AIC:
- 你正在 Kubernetes 环境中部署 APISIX 或 API7 网关。
- 你希望以完全 Kubernetes 原生的方式管理 API 网关。
支持的资源
AIC 支持以下 Kubernetes 资源:
- Gateway API:现代、可扩展的 Kubernetes 原生流量管理 API,支持多监听器、高级路由和更丰富的流量策略。
- Ingress:用于将基础 HTTP/S 流量路由到后端服务的旧版 Kubernetes 原生 API。它不支持 Gateway API 或 APISIX CRD 中的全部高级配置。
- APISIX CRD:APISIX 专用自定义资源,可对路由、插件、上游和其他网关能力进行细粒度控制,提供更高灵活性和更完整的功能覆盖。
这些资源均由 AIC 支持,并且可以在同一个 Kubernetes 集群中共存。部分功能只适用于特定资源类型,因此在组合使用多种资源时,应注意避免配置冲突。
下图展示 Ingress Controller 如何组合标准 Gateway API 资源和自定义资 源,在 Kubernetes 环境中定义路由、流量策略和网关行为:

AIC 如何处理 Kubernetes 资源
下图展示 AIC 处理 Kubernetes 资源的过程。Ingress、Gateway API 或 APISIX CRD 等资源会先被转换为内部 ADC YAML,然后同步到网关,用于动态流量管理。
APISIX Ingress Controller 与 API7 Ingress Controller
资源兼容性
APISIX Ingress Controller 使用的所有 Kubernetes 资源都与 API7 Ingress Controller 完全兼容,不需要修改资源定义。不过,命名空间、上游服务配置、GatewayProxy 到控制面的连接配置等与环境相关的配置通常会有所不同。
部署架构
以下架构图使用单控制器拓扑展示 API7 Ingress Controller 与 APISIX Ingress Controller 的不同部署模式。
API7 Ingress Controller
API7 Ingress Controller 支持一种部署模式:控制器直接与 API7 控制面(API7 控制台)通信。

APISIX Ingress Controller
APISIX Ingress Controller 支持两种部署模式:独立模式和传统模式。
独立模式
相比使用 etcd 的传统模式,更推荐独立模式。该模式用于解决在 Kubernetes 内运行 APISIX 和 etcd 时可能出现的稳定性问题。
