What is the difference between an Ingress and a reverse proxy?
You are right in your understanding.Ingress has two parts a controller which implements kubernetes ingress API interface for automated and fast way to configure a reverse proxy such as nginx or envoy.
The other part is the reverse proxy itself such as nginx, envoy.
So when you deploy a ingress setup in kubernetes it will deploy a ingress controller and a reverse proxy in your kubernetes cluster.
There are multiple vendors implementing the IngressController
. Even nginx
has one.
You are correct about Ingress
resource in Kubernetes just acting like a reverse proxy that we used to manually deploy. The IngressController
service is the actual reverse proxy which receives the traffic. The kubernetes resource Ingress
that you create is like the nginx.conf
config file that you would have created. You can create and run your own Ingress
by running an nginx
deployment, wrap it with a LoadBalancer
service and expressing your traffic rules by manually creating nginx.conf
file. Using Ingress
resource instead is just the native and simpler way to do this in Kubernetes.