OpenNJet Ingress Controller
OpenNJet Ingress Controller, also called OpenNJet KIC, is a free, Apache-2.0 Kubernetes Ingress Controller for self-hosted deployments.
What OpenNJet Ingress Controller is
OpenNJet Ingress Controller, also called OpenNJet KIC, is a free, Apache-2.0 Kubernetes Ingress Controller for self-hosted deployments. Built on the OpenNJet proxy, it handles host and path routing, dynamic locations and upstreams, load balancing, canary releases, TLS termination with SNI, TCP and UDP proxying, and WebSocket traffic. TCP and UDP proxy configuration can change through APIs without reloading OpenNJet. Ingress and VirtualServer resources can be assigned to controller instances by IngressClass, reducing configuration handled by each instance, and routing can cross Kubernetes namespaces. TransportServer resources provide active TCP health checks that change backend availability according to port responses. Headers on client requests and proxied responses can be modified. Access logging is configurable globally or per application. A ConfigMap can change worker-process counts from 1 to 512 or use an automatic CPU-based default. Deployment uses Kubernetes manifests and includes a NodePort service.
Good
- Free Apache-2.0 license
- Supports canary routing
- Handles TCP, UDP, and WebSocket traffic
- Dynamic proxy updates avoid reloads
- Active TCP health checks
Watch out
- Several ports are reserved
- Worker count is limited to 1–512
- Requires self-hosted Kubernetes deployment
Who it suits
It suits Kubernetes operators needing self-hosted ingress routing, canary traffic, protocol proxying, and dynamic configuration. Teams can also connect KIC with an ADC for front-end load balancing.
Verdict
OpenNJet KIC combines broad Kubernetes routing features with dynamic proxy and scaling controls. Review its reserved ports and manifest-based deployment before adopting it.
The facts
Each one read from OpenNJet Ingress Controller's own pages, with the date it was checked.
What it does
- Access logs
- Access-log settings, including whether logging is enabled and the log file path, can be set per application or globally through an njet-config ConfigMap; per-application settings take priority.checked 7 Oct 2026
- ADC integration
- KIC can register service domains, application pools and a virtual server with an ADC, which can act as the KIC service's front-end load balancer.checked 8 Oct 2026
- Cross-namespace routing
- Ingress and VirtualServer configurations can route across Kubernetes namespaces.checked 8 Oct 2026
- Deployment
- The project README describes deploying KIC to Kubernetes using manifests, including namespace, service account, ConfigMap, IngressClass, custom resources, RBAC, Deployment and NodePort service.checked 8 Oct 2026
- Distribution
- The maker links to the OpenNJet KIC user manual and source code from the release article.checked 7 Oct 2026
- Dynamic changes
- TCP and UDP proxy configuration updates use APIs and avoid reloading OpenNJet.checked 8 Oct 2026
- Dynamic TCP and UDP
- TCP and UDP proxy configuration can be updated dynamically without reloading OpenNJet.checked 7 Oct 2026
- Health checks
- TransportServer resources support active TCP health checks that can bring backends online or offline based on check results.checked 8 Oct 2026
- HTTP headers
- KIC can modify client request headers and proxied-service response headers, including custom and HTTP-standard headers.checked 7 Oct 2026
- Ingress processing
- Ingress and VirtualServer custom resources can be divided among KIC instances by IngressClass to reduce the configuration load handled by each instance.checked 8 Oct 2026
- Ingress scaling
- Its sharding mechanism assigns Ingress and VirtualServer resources to KIC instances by IngressClass to reduce the configuration load handled by each KIC type.checked 7 Oct 2026
- License
- The project repository displays an Apache-2.0 license.checked 8 Oct 2026
- Port constraints
- Ports 80, 443, 12001–12004, 8080, and 8081 are reserved for proxying, control-plane, upstream, status, or readiness functions and cannot be used by proxied services.checked 7 Oct 2026
- Protocols
- It supports TCP, UDP and WebSocket proxying.checked 8 Oct 2026
- Purpose
- OpenNJet KIC is a Kubernetes Ingress Controller built on OpenNJet proxy for cloud-native traffic management.checked 8 Oct 2026
- Routing
- It provides dynamic locations, host and path routing, load balancing, dynamic upstreams, canary releases, TLS termination and SNI.checked 8 Oct 2026
- Source access
- The maker's site links to the KIC source repository on Gitee.checked 8 Oct 2026
- Support
- The maker's page lists [email protected] and [email protected] mailing lists and QQ technical discussion group 607280080.checked 8 Oct 2026
- Traffic management
- It provides dynamic locations, host and path routing, load balancing, dynamic upstreams, canary releases, TLS termination and SNI, TCP and UDP proxying, and WebSocket support.checked 7 Oct 2026
- Worker configuration
- A ConfigMap can dynamically change the NJet worker-process count, with allowed values from 1 to 512 and an automatic CPU-core-based default.checked 7 Oct 2026
- Worker limit
- The worker-processes setting accepts values from 1 to 512 and defaults to auto based on CPU core count.checked 8 Oct 2026
Alternatives to OpenNJet Ingress Controller
- 1

ngrok
Free planWebAPILinuxmacOS7.8From $10 a month - 2

Higress
Free planOpen sourceWebAPILinuxmacOS7.7Free plan - 3

Traefik Proxy
Free planOpen sourceWebAPILinuxmacOS7.7Free plan - 4

agentgateway
Free planOpen sourceWebAPILinuxmacOS7.5Free plan - 5
Kusk Gateway
Free planOpen sourceWebAPILinuxmacOS7.5Free plan - 6

BFE Ingress Controller
Free planOpen sourceAPILinuxmacOSSelf-hosted7.2Free plan
