Ingress Controller 文档
API7 Ingress Controller 与 API7 企业版配合使用,APISIX Ingress Controller 则与开源 Apache APISIX 网关配合使用。
两个控制器共享本文档所述的资源 API、使用模式和功能设计。二者的安装与连接细节不同。
简介
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 1.6 是现代、可扩展的 Kubernetes 原生流量管理 API。两个控制器支持多监听器、HTTP、gRPC、TCP、UDP 和 TLS 路由、下游 mTLS 以及更丰富的流量策略。字段级支持请参阅 Ingress 和 Gateway API 支持。
- Ingress 是用于将基础 HTTP/S 流量路由到后端服务的旧版 Kubernetes 原生 API。它不支持 Gateway API 或 APISIX CRD 中的全部高级配置。
- APISIX CRD 可对路由、插件、上游和其他网关能力进行细粒度控制。
L4RoutePolicy可将 stream 插件挂载到 Gateway API TCP、UDP 和 TLS 路由。
已安装 Controller 所支持的资源可以在同一个 Kubernetes 集群中共存。应用清单前,请确认已安装的产品版本支持相应资源或字段。部分功能只适用于特定资源类型,因此组合使用多种资源时应避免配置冲突。
下图展示 Ingress Controller 如何组合标准 Gateway API 资源和自定义资源,在 Kubernetes 环境中定义路由、流量策略和网关 行为:

AIC 如何处理 Kubernetes 资源
AIC 将 Ingress、Gateway API 和 APISIX CRD 资源转换为内部 ADC YAML,然后将配置同步到网关。
APISIX Ingress Controller 与 API7 Ingress Controller
两个控制器共享本文档所述的 Kubernetes 资源 API 与功能。它们连接各自网关及随网关部署的方式不同,包括命名空间、上游服务配置和 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 时可能出现的稳定性问题。

传统模式
在传统部署模式中,APISIX 使用 etcd 作 为配置中心。
