Freedom251 › Kubernetes Ingress Controllers
OpenNJet Ingress Controller

What OpenNJet Ingress Controller is
OpenNJet Ingress Controller, also called OpenNJet KIC, is a free, self-hosted Kubernetes Ingress Controller built on the OpenNJet proxy. It handles host and path routing, load balancing, dynamic locations and upstreams, canary releases, TLS termination and SNI, plus TCP, UDP, and WebSocket proxying. TCP and UDP proxy settings can be changed dynamically without reloading OpenNJet. KIC assigns Ingress and VirtualServer resources to instances by IngressClass to spread configuration load, and those resources can route across Kubernetes namespaces. TransportServer resources support active TCP health checks that can change backend availability according to whether a configured port responds. Header rules can modify client requests and proxied-service responses. Access logging can be configured globally or per application, with application settings taking priority. A ConfigMap can change the NJet worker-process count from 1 to 512 or use an automatic CPU-core-based default. The project describes deployment to Kubernetes using manifests, and the maker links to its user manual and Gitee source code. Ports 80, 443, 12001–12004, 8080, and 8081 are reserved for proxy, control-plane, upstream, status, or readiness functions and cannot serve proxied services.
Who it suits
OpenNJet KIC suits Kubernetes operators who need self-hosted ingress routing across HTTP, TCP, UDP, or WebSocket traffic, including canary releases. Its sharding, cross-namespace routing, and dynamic proxy settings are relevant where controller configuration load and ongoing changes matter.
What it does well
- Supports host and path routing, load balancing, and canary releases
- TCP and UDP proxy settings change without reloading
- Ingress resources can be sharded by IngressClass
- Supports cross-namespace routing
- Active TCP health checks can change backend availability
What to know first
- Ports 80 and 443 are reserved
- Ports 12001–12004, 8080, and 8081 cannot serve proxied services
Limits
Ports 80, 443, 12001–12004, 8080, and 8081 are reserved for proxying, control-plane, upstream, status, or readiness functions and cannot be assigned to proxied services. The worker-process count accepts values from 1 to 512, or can be set automatically based on CPU cores.
Getting started
- Open the OpenNJet KIC project page.
- Review the user manual and source code linked by the maker.
- Deploy KIC to Kubernetes using the project manifests.
- Configure its namespace, service account, ConfigMap, IngressClass, custom resources, RBAC, Deployment, and NodePort service.
Verdict
OpenNJet KIC offers a broad set of routing and proxy controls for self-hosted Kubernetes deployments. Review its reserved-port constraints and deployment requirements before assigning proxied services.
Questions
Is OpenNJet KIC free?
Yes. Its pricing model is free, and the project repository displays an Apache-2.0 license.
Where can it run?
OpenNJet KIC is self-hosted and is deployed to Kubernetes using project manifests.
What traffic can it proxy?
It supports host and path routing, load balancing, dynamic upstreams, canary releases, TLS termination and SNI, TCP, UDP, and WebSocket proxying.
Can TCP and UDP settings change without a reload?
Yes. Their proxy configuration can be updated dynamically through APIs without reloading OpenNJet.
How does it distribute ingress resources?
It assigns Ingress and VirtualServer resources to KIC instances by IngressClass to reduce each instance's configuration load.
Where can users find project resources or support?
The maker links to the user manual and Gitee source repository, and lists developer and user mailing lists and a technical discussion QQ group, 607280080.
Facts from OpenNJet Ingress Controller's own pages
- 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. · njet.org.cn, 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. · njet.org.cn, 8 Oct 2026
- Cross-namespace routing
- Ingress and VirtualServer configurations can route across Kubernetes namespaces. · njet.org.cn, 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. · gitee.com, 8 Oct 2026
- Distribution
- The maker links to the OpenNJet KIC user manual and source code from the release article. · njet.org.cn, 7 Oct 2026
- Dynamic changes
- TCP and UDP proxy configuration updates use APIs and avoid reloading OpenNJet. · njet.org.cn, 8 Oct 2026
- Dynamic TCP and UDP
- TCP and UDP proxy configuration can be updated dynamically without reloading OpenNJet. · njet.org.cn, 7 Oct 2026
- Health checks
- TransportServer resources support active TCP health checks that can bring backends online or offline based on check results. · njet.org.cn, 8 Oct 2026
- HTTP headers
- KIC can modify client request headers and proxied-service response headers, including custom and HTTP-standard headers. · njet.org.cn, 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. · njet.org.cn, 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. · njet.org.cn, 7 Oct 2026
- License
- The project repository displays an Apache-2.0 license. · gitee.com, 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. · njet.org.cn, 7 Oct 2026
- Protocols
- It supports TCP, UDP and WebSocket proxying. · njet.org.cn, 8 Oct 2026
- Purpose
- OpenNJet KIC is a Kubernetes Ingress Controller built on OpenNJet proxy for cloud-native traffic management. · njet.org.cn, 8 Oct 2026
- Routing
- It provides dynamic locations, host and path routing, load balancing, dynamic upstreams, canary releases, TLS termination and SNI. · njet.org.cn, 8 Oct 2026
- Source access
- The maker's site links to the KIC source repository on Gitee. · njet.org.cn, 8 Oct 2026
- Support
- The maker's page lists [email protected] and [email protected] mailing lists and QQ technical discussion group 607280080. · njet.org.cn, 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. · njet.org.cn, 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. · njet.org.cn, 7 Oct 2026
- Worker limit
- The worker-processes setting accepts values from 1 to 512 and defaults to auto based on CPU core count. · njet.org.cn, 8 Oct 2026
Where OpenNJet Ingress Controller stands on Freedom251
- Kubernetes Ingress Controllers#19 of 28