Improving Cloud Workload Security Through Smarter Traffic Routing and Observability
What is our primary use case?
My main use case for NGINX Ingress Controller has been in Kubernetes-based consulting work, especially when a team needs a controlled and observable entry point for application traffic.
In a typical setup, a user or client application sends a request to a public endpoint. That request first reaches an external load balancer, depending on the environment — for example, a cloud load balancer, MetalLB in a lab or bare-metal setup, or another external load-balancing layer. From there, the traffic is forwarded to the NGINX Ingress Controller running inside the Kubernetes cluster.
That is where NGINX Ingress Controller becomes important. It evaluates the Kubernetes Ingress rules, applies routing decisions based on hostnames and paths, and forwards the request to the right Kubernetes Service. The Service then sends the traffic to the correct backend pods, such as web pods, API pods, or authentication pods.
What I value most is that NGINX Ingress Controller is not just a way to expose services. It gives teams a practical control point for TLS termination, HTTP routing, rewrites, annotations, timeouts, security headers, rate limits, and observability. But it needs to be operated carefully. In production, the biggest risk is usually not NGINX itself, but weak configuration, missing monitoring, unclear ownership, or unsafe upgrades.
How has it helped my organization?
NGINX Ingress Controller helped by giving teams a predictable entry point for Kubernetes workloads. Instead of exposing services one by one, traffic could be routed through a controlled layer for TLS, host/path routing, rewrites, headers, logs, and metrics. The main benefit was operational clarity: better visibility, safer exposure of services, and fewer ad hoc networking decisions.
What is most valuable?
The best features are Kubernetes-native routing, TLS termination, flexible host/path rules, annotations, ConfigMaps, and observability when metrics and logs are configured well. In practice, it turns ingress into a clear control point for HTTP/HTTPS traffic. The trade-off is governance: annotations, rate limits, certificates, and upgrades need discipline.
What needs improvement?
I would improve diagnostics and guardrails. A built-in support bundle command that safely collects controller config, events, logs, versions, certificate status, and redacted error data would help teams troubleshoot faster. I would also like stronger policy controls around risky annotations, rate limits, TLS expiry, and upgrade validation. It should help security, but not pretend to replace Zero Trust or vulnerability management.
For how long have I used the solution?
I have been using NGINX Ingress Controller for more than two years.
What do I think about the stability of the solution?
I consider it stable when deployed with disciplined configuration. In my experience, the controller itself is not usually the weak point. Problems tend to come from unclear annotations, certificate issues, poor observability, under-sized resources, or upgrades without staging. With good operational practices, it is reliable.
What do I think about the scalability of the solution?
Scalability is strong because it fits naturally into Kubernetes. You can run multiple controller replicas, use resource requests/limits, autoscaling, and a load balancer in front of it. The important point is to test the whole path: controller capacity, backend services, TLS, rate limits, observability, and failure behavior under load.
How are customer service and support?
My experience with support was mostly community/self-managed. In the environments I worked with, the client did not use NGINX Plus or premium support, so issues were handled through internal expertise, documentation, and consulting help when needed. For mission-critical production use, I would consider paid support or a supported controller path.
Which solution did I use previously and why did I switch?
Yes. Before using NGINX Ingress Controller, I worked with more traditional network controls such as Layer 3 firewalls and manual routing rules. They were useful, but not enough for cloud-native workloads because Kubernetes needs application-aware routing by host, path, TLS, and service. That gap pushed me toward an ingress controller.
How was the initial setup?
The initial setup is usually straightforward for a basic lab or small environment, but production setup is more complex. Installing the controller is not the hard part. The real work is DNS, TLS, load balancer integration, annotations, observability, resource sizing, security headers, staging, and upgrade/rollback discipline.
What about the implementation team?
In the implementations I worked with, I did not rely on a dedicated integrator or reseller. The solution was deployed as part of the Kubernetes environment, and in one context it was obtained through AWS Marketplace. Most of the value came from internal/consulting implementation discipline rather than from a third-party integrator.
What was our ROI?
Yes. The ROI comes from reducing networking complexity and improving the safety of exposing Kubernetes services. Instead of handling every service separately, teams get a consistent ingress layer for TLS, routing, headers, logs, and metrics. The value is strongest when it prevents downtime, misrouting, expired certificates, or insecure exposure.
What's my experience with pricing, setup cost, and licensing?
My experience was positive because the implementation I worked with was deployed as part of the Kubernetes stack, without premium NGINX support. That made the initial cost low. The real cost is operational: proper configuration, monitoring, certificate management, testing, upgrades, and people who understand Kubernetes ingress behavior.
Which other solutions did I evaluate?
I considered lower-level approaches such as iptables and traditional firewall/load-balancer rules. They can work, but they become hard to maintain as the number of services grows. NGINX Ingress Controller is easier to operate in Kubernetes because routing lives closer to the application model. The trade-off is that annotations and controller configuration must be governed carefully.
What other advice do I have?
I would rate it 9/10 when it is operated intentionally. My advice is not to treat it as just a YAML shortcut. Use it with clear ownership, staging, controlled annotations, TLS monitoring, logs, metrics, resource limits, and rollback plans. For new designs or long-term roadmaps, also evaluate Gateway API or a supported controller path.
Which deployment model are you using for this solution?
Hybrid Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Routing and security have improved as it manages complex traffic and canary releases efficiently
What is our primary use case?
NGINX Ingress Controller serves our organization primarily for routing, SSL/TLS termination, and load balancing.
A specific example of how I used NGINX Ingress Controller for routing is that we define the paths and the applications inside the NGINX.conf. The traffic routes to the services, and we set up the load balancing at their own configurations level. Apart from that, we see limitations in NGINX Ingress Controller, as we have multiple services. We need to define the configurations in the annotation section, which causes a mess. Regarding SSL/TLS termination, since the traffic comes from outside to inside, the load balancer reads it out and redirects it to NGINX. We terminate that traffic at the NGINX configuration and then redirect the traffic to the services and ports without SSL/TLS. We used it for a long time before we shifted towards ALB for the last six months.
In my use case with NGINX Ingress Controller, when we have multiple services, it becomes messy and overburdened to add the annotations to define the policy and the annotations of each service, making it a bit complex. It is not straightforward. NGINX documentation is friendly and very handy, but with a large cluster, as we have a company running around 70 plus services, it is very difficult for us to manage these things.
What is most valuable?
NGINX Ingress Controller offers several best features, including SSL/TLS and flexible routing, which are the most powerful features. In the Ingress we define path-based routing, and we can define host-based routing; in NGINX, we can also define path-based routing and redirect to service level. The same applies to host-based routing in NGINX. The canary deployments feature allows us to shift a specific amount or percentage toward the new version when a new version is released. These are the very best features that I value in NGINX Ingress Controller.
My experience using canary deployments with NGINX Ingress Controller worked really well, by simply adding canary annotations in the NGINX sections, such as nginx.ingress.kubernetes.io/canary. When we define those annotations in the NGINX configurations, it works well. By adding those, we are able to route a specific percentage of traffic toward the new versions while keeping the remaining percentage on the stable version. This gives us confidence to release the new version without risking the entire user base. The setup is straightforward, though we had to manually monitor the canary traffic since there are no built-in analytics.
NGINX Ingress Controller has positively impacted our organization by efficiently routing the traffic. Previously, we were planning to move toward Traefik, but we see that NGINX is a widely used open-source controller that is easy to deploy in Kubernetes. NGINX documentation is very friendly, making traffic management easy. Managing load balancing configurations does not require significant effort, and deployments are smoother and faster. Managing SSL certificates is also simple. I think it has significantly impacted our organization.
What needs improvement?
NGINX Ingress Controller can be improved in multiple ways according to my suggestions. First, it takes time when we have many services, making routing complex. It is very difficult to manage the configurations using annotations, as we need to define the annotations of each service separately. A small mistake can break the whole routing policies and structure, making it challenging to debug deployments at large scale, which takes time. I also suggest integrating with Prometheus and Grafana for better visibility into traffic and performance. Overall, pairing NGINX with proper monitoring and GitOps practices makes it much more powerful and manageable.
From a security perspective, we can implement a WAF. That might work to tune the processes. For automation, adopting GitOps strategies instead of manual configurations can mitigate risks. These are improvements that can be added.
In my experience, NGINX Ingress Controller is very reliable and stable. It is very handy during our tenure with NGINX Ingress Controller, and it manages things easily. However, as I mentioned, with a very large cluster, it is challenging to spend time on adding and managing configurations. These are what I suggest could be improved in NGINX Ingress Controller, especially considering it is deprecated in March 2026.
For how long have I used the solution?
I have been using NGINX Ingress Controller since I started my working profession when I used Ingress Controller in a Texan company, and then in this company, we are using Kubernetes. We deploy our applications on Kubernetes, and at that time we were using Ingress Controller for a long time. Then we decided that we should go with the ALB because we heard news that NGINX Ingress Controller is now deprecated and is going to be deprecated. We used it for one to two years.
What do I think about the scalability of the solution?
NGINX Ingress Controller scalability is excellent. It is highly available and scalable, designed to manage high traffic in Kubernetes. The features include horizontal scaling, so we can scale the controllers by increasing the number of replicas in our deployments. It handles traffic effectively. Since my organization has a large cluster, we utilized this feature. The optimization is good, with a build on NGINX web binaries leveraging an asynchronous event-driven architecture that handles thousands of concurrent connections. The load balancing algorithm is supportive, with options such as round robin and least connections to distribute incoming traffic effectively across backend services.
How are customer service and support?
Regarding customer support for NGINX Ingress Controller, I do not think we had a chance to sync with them. Given its high performance and dynamic reconfigurations, we handle it by our own expertise. We are using the community edition, which is open source, so support is primarily self-service via GitHub issues, Stack Overflow, or the Kubernetes Slack community. We did not get an opportunity to connect with customer support.
What other advice do I have?
From my experience, if someone is a startup and does not want to spend money, I definitely recommend NGINX as a best option. For medium-tier companies also planning to implement an ingress controller, I think NGINX is the best for that. For enterprises seeking a cost-effective solution, NGINX is excellent in that case. The configurations, routing policies, and load balancing management are straightforward, so I highly recommend using NGINX. Additionally, since it has more features, we can implement management tools that do not require manually managing DNS records or SSL certificates. Fine-tuning performance is very good, as NGINX is fast, and the keep-alive feature reduces the overhead of TCP and TLS handshakes. Always set CPU and memory requests for your ingress to reduce throttling or OOM kills during traffic spikes. These are the recommendations I have.
It has been a great experience with NGINX Ingress Controller, and I am definitely looking forward to its return with new features and possibly a new name. We will certainly work with them. I would rate my overall experience with this product as an 8 out of 10.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)
Traffic routing has become reliable and secure while SSL termination protects private clusters
What is our primary use case?
Our main use case for NGINX Ingress Controller is that we are using it in our EKS and our open source Kubernetes as a controller where it handles our traffic.
A specific example of how we use NGINX Ingress Controller to handle our traffic is that we are configuring the Kubernetes cluster as a private endpoint only, so it will not be accessible through the internet for anyone. We are securing it through a private endpoint only, so we are using NGINX Ingress Controller for handling the traffic. We are configuring NGINX Ingress Controller as pods, and then we are configuring the Ingress rules for that to serve which traffic is coming from the load balancer and to where the traffic will be routed. We are configuring the Ingress rules based on the rules, and it will route to the different services, and from the services, it will route to the different pods and deployments. Using that, we will configure the SSL certificate for the security, and in NGINX Ingress Controller only, it will handle the certificate termination. SSL termination will happen within the controller. It is very reliable for us.
What is most valuable?
The best features NGINX Ingress Controller offers include SSL termination, where it handles the certificate terminations, and if I had to pick a favorite feature, that would be it.
NGINX Ingress Controller has positively impacted our organization by improving security when it comes to the certificate. As I mentioned, SSL termination is one of the points where it improves. When it comes to handling the traffic, where we are configuring the Ingress rules, we can say that it is very highly improved for us. Even though the traffic is very high, it will be handled very well, routing the traffic based on the Ingress rules to the particular service and to the particular pod.
What needs improvement?
When it comes to how NGINX Ingress Controller can be improved, I think we can add documentation as one of the points. We can improve it so that everyone can directly refer to the particular document in a precise way, and we will be getting very specific information. When we have any specific issues, it will be much easier for us to troubleshoot things. Documentation is one of the points, and everything is so far good for me.
For how long have I used the solution?
We are using NGINX Ingress Controller for the past two to three years.
What do I think about the stability of the solution?
NGINX Ingress Controller is stable and has been reliable for me over time.
What do I think about the scalability of the solution?
NGINX Ingress Controller's scalability is good and can handle increased load easily.
How are customer service and support?
The customer support for NGINX Ingress Controller is good; I have reached them a few times, and it was good.
Which other solutions did I evaluate?
I did not evaluate other options before choosing NGINX Ingress Controller.
What other advice do I have?
The advice I would give to others looking into using NGINX Ingress Controller is that we are using this for the past three to four years, and it is very reliable for us and it can handle the traffic based on our load as well. So I can suggest it to them when they are starting with new clusters and thinking to opt for any controllers for their cluster. I can directly suggest it. I would rate this product an 8 out of 10.
Which deployment model are you using for this solution?
Private Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Reverse proxying has simplified secure API routing and now supports efficient microservice traffic
What is our primary use case?
My main use case for NGINX Ingress Controller is that I commonly use it as a reverse proxy.
I have used NGINX Ingress Controller for SAP API calls, so whenever I am using these API calls on my frontend application, I don't want to expose the SAP server details. Therefore, I normally ingress it through NGINX Ingress Controller, mapping all these APIs to the SAP APIs, and from the frontend, I have access to it as a local post, effectively hiding all the SAP server URLs. A specific use case includes sales order APIs and posting something into SAP to get the business partner details from SAP, and similar actions.
What is most valuable?
NGINX Ingress Controller offers primarily reverse proxying capabilities, and the proxy feature stands out for me due to some performance benefits, definitely security as the first thing, and also the load balancing aspect and the ability to route traffic to multiple servers.
NGINX Ingress Controller has positively impacted my organization by definitely improving my team's efficiency in terms of multiple load balancers and complex routing rules we can configure there, resulting in a single, easy-to-manage layer. Hence, routing, SSL termination, and rate limiting contribute to making us much faster and efficient.
What needs improvement?
NGINX Ingress Controller can be improved by implementing faster deployment of new services, simplifying SSL or TLS management, and enhancing faster troubleshooting by providing more logs. While I have debug logs, using more techniques to reduce the mean time to resolution would be beneficial.
For how long have I used the solution?
I have been using NGINX Ingress Controller for ten years.
What do I think about the stability of the solution?
NGINX Ingress Controller is stable.
What do I think about the scalability of the solution?
In the Kubernetes environment, NGINX Ingress Controller scales very well.
What was our ROI?
As a developer, I can definitely say that NGINX Ingress Controller improves performance in terms of load balancing, especially in a microservices environment with many APIs. I don't have closely related metrics, but in a past microservices environment where I had fifty or more services, maintaining around one thousand to one thousand five hundred APIs was very hard without ingress. However, with ingress, it is easier to maintain them, and I think it doesn't charge more than thirty dollars a month for usage.
What other advice do I have?
NGINX Ingress Controller is pretty standard and very lightweight, making it highly recommendable to use in local development environments, and it is especially useful in test environments for enabling SSL and rate limiting.
On a scale of one to ten, I would rate NGINX Ingress Controller around eight point five, near to nine, due to the ease of setup, although there is a slight learning curve with some advanced features. The documentation is good and reliable, and it performs well as it is lightweight and handles traffic loads sufficiently. While debugging, the logs are generally helpful, debugging complex routing can sometimes be tricky, so I may need to have more NGINX internals to be logged. Overall, scalability, performance, and upgrades are all good, and using it in Kubernetes integrates very well.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?