Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between ingress and reverse proxy

I have used a few reverse proxies, such as HAProxy, Traefik and Kong. And when I started working with Kubernetes, I was confused by the concept of Ingress. Aren't the routings to back-end resources also achievable via reverse proxies? What is the purpose of using Ingress?

like image 795
Xulong Zhang Avatar asked Aug 27 '18 01:08

Xulong Zhang


People also ask

What is the difference between proxy and reverse proxy?

A traditional forward proxy server allows multiple clients to route traffic to an external network. For instance, a business may have a proxy that routes and filters employee traffic to the public Internet. A reverse proxy, on the other hand, routes traffic on behalf of multiple servers.

What is reverse proxy in Kubernetes?

NGINX Plus is a reverse proxy and load balancing tool that performs multiple roles. It is the enterprise-grade, highly supported version of the NGINX open-source platform. Kubernetes related features include: Sidecar- A sidecar is a dedicated container that runs alongside the application container in a Kubernetes pod.

What is an ingress?

In Kubernetes, an Ingress is an object that allows access to your Kubernetes services from outside the Kubernetes cluster. You configure access by creating a collection of rules that define which inbound connections reach which services. This lets you consolidate your routing rules into a single resource.

What is difference between ingress and ingress controller?

Just like other objects in K8s ingress is also a type of object K8s which is mainly referred as set of redirection rules. Where as ingress controller is like other deployment objects(could be demon set as well) which listen and configure those ingress rules.


1 Answers

You can use any reverse proxy you want (for example kube-nginx-proxy).

In this case you need to perform some configuration steps, which could take a lot of time.

Ingress is specially designed for fast setup. The only thing you should do is to describe your configuration using yaml, which is easier and faster than third-party solutions.

Also you can use, for example, Istio for this purpose, in which case Ingress is already integrated.

like image 181
Akar Avatar answered Sep 27 '22 22:09

Akar