Networking·

Traffic Management with Two Ingress Controllers

How to route internal and external traffic separately using two Nginx Ingress Controllers in Kubernetes.

A common scenario in Kubernetes: several microservices need to communicate internally using private domains, while some services must be accessible externally with valid DNS. The challenge is ensuring no external traffic can reach internal microservices.

The Solution: Two Ingress Controllers

Kuberise.io solves this by deploying two instances of the Nginx Ingress Controller:

  • Internal Ingress Controller -- Handles traffic between microservices using a private domain like kuberise.internal. It uses an internal load balancer, keeping all traffic within the cluster network.
  • External Ingress Controller -- Manages traffic from outside the cluster using DNS configurations and TLS, exposing only the services that need to be public.

Traffic management with two ingress controllers

Benefits

  • Clear traffic separation between internal and external services
  • Secure routing with customizable domains and ingress classes
  • GitOps-driven configuration following platform engineering best practices

Learn more about configuring Nginx Ingress Controllers in the documentation.