Higress is an API gateway that combines an Envoy data plane with a control plane derived from Istio. It serves as a Kubernetes ingress controller, a microservice gateway that discovers services from registries such as Nacos, and an AI gateway that fronts large language model providers with unified access, token-based rate limiting, caching and observability. Its distinguishing design choice is that extensions run as WebAssembly plugins written in Go, Rust or JavaScript, which can be loaded and changed without restarting the gateway. It addresses the cost of running separate gateways for web traffic, internal services and model calls, and the operational pain of ingress configuration reloads. Higress was developed inside Alibaba, where long-lived connection reloads in older gateways motivated it, was open-sourced in 2022, and was accepted into the CNCF Sandbox on March 15, 2026.
CNCF daily · Sprint 3, post 7 of 21 · API Gateway
At a glance
| Category | Orchestration & Management › API Gateway |
| CNCF status | Sandbox. Accepted March 15, 2026 |
| Written in | Go for the controller and plugins SDK; Envoy (C++) as the proxy |
| License | Apache 2.0 |
| Configuration APIs | Kubernetes Ingress, Gateway API and Higress-specific annotations and custom resources |
| Extensions | WebAssembly plugins (Go, Rust, JavaScript), plus Lua filters |
| Service discovery | Kubernetes, Nacos, Consul, ZooKeeper and static or DNS targets |
| AI features | Multi-provider model proxy, token rate limiting, semantic caching, observability, and hosting of MCP (Model Context Protocol) servers |
| Console | A web console for routes, domains, plugins and consumers |
Architecture
flowchart TB
CLIENT[Clients<br/>web, mobile, agents] ==>|HTTPS| GW[Higress gateway<br/>Envoy with Wasm filters]
GW ==>|routed request| SVC[Kubernetes services<br/>and VM backends]
GW ==>|model request| LLM[LLM providers<br/>and local models]
CTRL[Higress controller<br/>Istio derived xDS] -.->|xDS route and cluster config| GW
K8S[Kubernetes API<br/>Ingress and Gateway API] -.->|resources| CTRL
REG[Nacos or Consul<br/>service registries] -.->|service endpoints| CTRL
PLUG[Wasm plugin store<br/>OCI image or URL] -.->|plugin binaries| GW
CON[Higress console] -.->|manage routes and plugins| K8S
GW -.->|metrics logs traces| OBS[Prometheus and tracing backend]
classDef core fill:#0f766e,stroke:#064e4a,stroke-width:2px,color:#ffffff
classDef data fill:#e3f2fd,stroke:#1565c0,stroke-width:1.5px,color:#1d1c1a
classDef actor fill:#eceff1,stroke:#455a64,stroke-width:1.5px,color:#1d1c1a
classDef ctrl fill:#ede7f6,stroke:#5e35b1,stroke-width:1.5px,color:#1d1c1a
class GW,CTRL,CON core
class SVC,LLM,OBS data
class CLIENT actor
class K8S,REG,PLUG ctrl
Key: teal blocks are Higress components, blue are backends and observability, purple are configuration sources, grey are clients. Thick arrows carry traffic, dashed arrows carry configuration and telemetry.
| Component | Responsibility |
|---|---|
| Gateway (Envoy) | Terminates TLS, routes requests, runs authentication, rate limiting and AI plugins, and proxies to backends. |
| Controller | Watches Ingress, Gateway API and registry data and pushes dynamic configuration to Envoy over xDS, without reloads. |
| Wasm plugins | Sandboxed extensions for authentication, transformation, rate limits, AI proxying and custom logic, loaded dynamically. |
| Console | A graphical interface for managing routes, domains, consumers and plugin settings. |
| Registry integrations | Allow routing to services that are registered outside Kubernetes. |
Design principle. Apply configuration to a running proxy. Dynamic xDS updates and hot-loaded Wasm plugins let routes, certificates and policies change without dropping long-lived connections, which matters for streaming and for model responses that last many seconds.
Production reference design
A common deployment uses Higress as the single entry point to a Kubernetes cluster, with separate routes for applications and for AI traffic.
- Install the gateway. Use the project Helm chart and pin the version:
helm repo add higress.io https://higress.io/helm-charts helm install higress higress.io/higress \ --namespace higress-system --create-namespace --version <version> - Expose services with standard resources. An Ingress that uses the Higress class:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: { name: shop, namespace: shop } spec: ingressClassName: higress tls: - { hosts: ["shop.example.com"], secretName: shop-tls } rules: - host: shop.example.com http: paths: - path: /api pathType: Prefix backend: service: { name: order, port: { number: 8080 } } - Add policies through plugins. Enable plugins for key or JWT authentication and rate limiting on specific routes or domains. Plugin settings are supplied as
WasmPluginresources or in the console, and the schema for each plugin is in its documentation. - Front AI providers (optional). Configure the AI proxy plugin with a provider, credentials from a secret, and a model mapping so applications call one stable endpoint while the gateway handles authentication, fallback and token limits.
- Scale and observe. Run at least two gateway replicas behind a load balancer, export metrics to Prometheus, and send access logs and traces to your tracing backend.
Typical uses include replacing an ingress controller, protecting microservices behind one gateway, bridging VM and Kubernetes backends, and governing application access to LLM providers. Confirm option names against the documentation for your version.
Operational considerations
- Plugin supply chain. Wasm plugins run inside the gateway. Pull them only from images you control, pin versions, and test them for memory and latency impact.
- Sandbox project maturity. The community is smaller than for Envoy Gateway or Kong, and much documentation originates in Chinese. Confirm the support and release model you need.
- Secrets for AI providers. Store provider keys in Kubernetes secrets or an external secret store, and restrict console access, since the gateway can spend money on your behalf.
- Capacity. Envoy memory grows with route and cluster count. Test with realistic route sets and, for streaming responses, long-lived connection limits.
- Migration. Moving from another ingress controller means mapping annotations and policies. Run both in parallel on different hostnames first.
Adoption
- Alibaba Cloud created Higress, runs it internally, and offers it as the basis of its managed cloud-native API gateway service.
- The project’s repository and website list further users, mainly in China and Asia; as a recent CNCF member, its public adopter record in other regions is still small, so teams should confirm references relevant to them.
Alternatives
| Solution | Model | Best suited to |
|---|---|---|
| Kgateway (CNCF Sandbox) | Gateway API control plane for Envoy | Standards-first Gateway API deployments; see the Kgateway brief |
| Emissary-Ingress (CNCF Incubating) | Envoy-based API gateway with its own CRDs | Mapping-style routing for Kubernetes; see the Emissary-Ingress brief |
| Envoy Gateway | Official Envoy gateway project | Gateway API with upstream Envoy support |
| Kong Gateway, Apache APISIX | Plugin-rich API gateways | Large plugin ecosystems and commercial support options |
| Cloud API gateways | Managed gateway services | Teams that prefer a provider-operated gateway |
Strengths and limitations
| Strengths | Limitations |
|---|---|
| Dynamic configuration without connection-dropping reloads | Sandbox project with a short CNCF track record |
| Wasm plugins in several languages, hot loaded | Plugin ecosystem is smaller than Kong or APISIX |
| One gateway for ingress, services and AI traffic | Documentation and community skew toward Chinese-language sources |
| Registry integrations beyond Kubernetes | Istio-derived control plane adds concepts to learn |
| Envoy performance and Apache 2.0 licence | AI gateway features are young and change quickly |
Recommendation
Assess. Higress is worth a trial where long-lived connections, Wasm extensibility or a combined web and AI gateway are real requirements. Deploy it beside the existing ingress on a test hostname, move one route with an authentication plugin, and measure latency and reload behaviour. For plain Kubernetes ingress with the Gateway API, Envoy Gateway or Kgateway may be a lower-risk choice.
References: CNCF project page · Higress website · Higress repository · CNCF Landscape