Skip to main content

Ingress Controller Documentation

API7 Ingress Controller works with API7 Enterprise, while APISIX Ingress Controller works with the open-source APISIX gateway.

The controllers share the resource APIs, usage patterns, and feature designs described in this documentation. Installation and connection details differ between the two products.

Introduction

API7 / APISIX Ingress Controller (AIC) is a Kubernetes Ingress Controller that converts Kubernetes resources—such as Ingress, Gateway API, and APISIX custom CRDs—into configurations for API7 / APISIX gateways. It enables declarative management of routing, SSL, plugins, upstreams, and other gateway resources directly from Kubernetes.

You should use AIC if any of the following apply:

  • You are deploying APISIX or API7 Gateways in a Kubernetes environment.
  • You want a fully Kubernetes-native experience for managing your API Gateway.

Supported Resources

AIC supports the following Kubernetes resources:

  • Gateway API 1.6 is a modern, extensible Kubernetes-native API for traffic management. The controllers support multiple listeners, HTTP, gRPC, TCP, UDP, and TLS routes, downstream mTLS, and richer traffic policies. See Ingress and Gateway API Support for field-level support.
  • Ingress is the legacy Kubernetes-native API for basic HTTP/S routing to backend services. It does not support all advanced configurations available in Gateway API or APISIX CRDs.
  • APISIX CRDs provide fine-grained control over routing, plugins, upstreams, and other gateway features. L4RoutePolicy attaches stream plugins to Gateway API TCP, UDP, and TLS routes.

Resources supported by the installed controller can coexist within the same Kubernetes cluster. Confirm that the installed product release supports a resource or field before applying its manifest. Some features are available only through specific resource types, so avoid configuration conflicts when using multiple resources together.

The diagram below illustrates how the Ingress Controller combines standard Gateway API resources with custom resources to define routing, traffic policies, and gateway behavior within a Kubernetes environment:

Diagram of how API7/APISIX Ingress Controller models Kubernetes resources: a Gateway references a GatewayClass and a GatewayProxy; HTTPRoute and TCPRoute resources attach to the Gateway and target backend Services; HTTPRoutePolicy attaches to HTTPRoute and BackendTrafficPolicy attaches to the Service

How AIC Processes Kubernetes Resources

AIC translates Ingress, Gateway API, and APISIX CRD resources into internal ADC YAML, then synchronizes that configuration to the gateway.

APISIX Ingress Controller vs API7 Ingress Controller

The controllers share the Kubernetes resource APIs and capabilities described in this documentation. They differ in how they connect to and deploy with their respective gateways, including namespaces, upstream service configuration, and GatewayProxy connection settings.

Deployment Architectures

The architectural diagrams below use a single-controller topology to illustrate the different deployment modes of API7 and APISIX Ingress Controller.

API7 Ingress Controller

API7 Ingress Controller supports a single deployment mode, in which the controller communicates directly with the API7 Control Plane (API7 Dashboard).

Deployment topology: API7 Ingress Controller runs in the Kubernetes cluster alongside API7 Gateway data plane instances, and translates Kubernetes resources into configuration applied via the API7 Dashboard control plane (which sits outside the cluster)

APISIX Ingress Controller

APISIX Ingress Controller supports two deployment modes: standalone and traditional.

Standalone Mode

The standalone mode is recommended over the traditional mode (with etcd). It is designed to address the stability issues that can arise when running APISIX and etcd inside Kubernetes.

Standalone-mode deployment: APISIX Ingress Controller and APISIX data plane both run in the Kubernetes cluster; APISIX runs in API-driven standalone mode and the controller pushes configuration to it via the APISIX Admin Service, with no etcd cluster involved

Traditional Mode

In the traditional deployment mode, APISIX uses etcd as its configuration center.

Traditional-mode deployment: APISIX Ingress Controller writes configuration into an etcd cluster, and APISIX data plane instances watch etcd for changes; all components run inside the Kubernetes cluster