The Ingress NGINX Alternative: Open Source F5 NGINX Ingress Controller for the Long Term
By F5 DevCentral Community
Key Concepts
- Kubernetes Ingress: A Kubernetes object that manages external access to services within a cluster, typically providing HTTP and HTTPS routing.
- Ingress EngineX: A now-deprecated Kubernetes ingress controller project.
- F5 EngineX Ingress Controller: The recommended successor to Ingress EngineX, offering a stable and supported platform.
- Golang: A programming language used in the F5 EngineX Ingress Controller for its stability and performance.
- Annotations: Kubernetes metadata used to attach non-identifying information to resources, used here for configuration.
- Path Rewrites: Modifying the URL path of incoming requests.
- Load Balancing: Distributing network traffic across multiple servers.
- Round Robin: A load balancing algorithm that distributes traffic sequentially to available servers.
- CVE Patching: Addressing Common Vulnerabilities and Exposures to maintain security.
The Retirement of Ingress EngineX and Transition to F5 EngineX
The Kubernetes community is officially retiring the Ingress EngineX project. Maintenance will end in late 2025, with complete project cessation – including the end of CVE patching – by March 2026. This is framed not as a crisis, but as a necessary architectural shift, with the F5 EngineX ingress controller positioned as the natural successor.
Architectural Advantages of F5 EngineX
The F5 EngineX ingress controller offers a more robust architecture compared to the community version of EngineX. The community version relies heavily on Lewis scripts and third-party modules, introducing potential instability. In contrast, the F5 version utilizes a stable Golang controller implementation that directly leverages native EngineX capabilities. This results in fewer dependencies and improved overall stability. The F5 project has been open source since 2016, supported by a community of over 150 contributors, combining F5’s reliability with the benefits of open-source development.
Migration Process: Community EngineX to F5 EngineX
Migrating from the community EngineX to the F5 EngineX ingress controller is presented as a straightforward process. The demonstration focused on translating existing community annotations to their F5 EngineX equivalents, ensuring consistent traffic behavior.
The example application, “T”, was initially configured with the community ingress using the standard EngineX class. Two key configurations were highlighted for migration:
- Path Rewrites: The community version required a complex regular expression (
$2) for path rewrites. The F5 EngineX configuration simplifies this usingEngineX/rewriteswith a clean, explicit format:service name = rewrite target, eliminating regex overhead. - Load Balancing: The community version used the
load balanceannotation set toroundrobin. The F5 EngineX configuration utilizesenginex.org/lb-methodwhich directly maps to the native EngineXroundrobindirective, maintaining identical traffic distribution while improving performance transparency.
The migration was executed by applying a modified Kubernetes configuration file, changing the class to engineXF5 and updating the annotations. Verification confirmed successful traffic flow through the F5 EngineX controller, demonstrating the correct execution of the rewrite rule (returning a 200 status code) and the proper functioning of the round robin load balancing (verified by changes in the server address).
Supporting Resources and Documentation
The presenter recommended a blog post from EngineX detailing the Ingress EngineX alternative as a strategic resource for architecture teams. This post outlines the official retirement timeline and provides a comprehensive migration guide. For implementation, the official F5 EngineX GitHub repository is the source for the latest release and full installation documentation. Links to both resources were provided in the video description.
Key Argument & Perspective
The central argument is that the retirement of Ingress EngineX presents an opportunity to adopt a more stable, supported, and architecturally sound solution in the F5 EngineX ingress controller. The presenter positions this transition as a positive step, emphasizing the ease of migration and the benefits of a Golang-based implementation backed by a strong community and a trusted vendor.
Notable Quote
“Rather than viewing this as a crisis, we see it as a necessary architectural shift.” – Presenter, emphasizing a proactive approach to the EngineX retirement.
Synthesis/Conclusion
The video effectively demonstrates the impending end-of-life for Ingress EngineX and advocates for a seamless transition to the F5 EngineX ingress controller. The migration process is presented as manageable, with clear examples of annotation translation. The emphasis on architectural improvements, community support, and readily available documentation positions F5 EngineX as a viable and advantageous replacement for organizations currently utilizing the community EngineX. The key takeaway is to proactively plan for the migration before March 2026 to avoid disruptions and ensure continued security patching.
Chat with this Video
AI-PoweredHi! I can answer questions about this video "The Ingress NGINX Alternative: Open Source F5 NGINX Ingress Controller for the Long Term". What would you like to know?