Monday, May 1, 2023

Kubernetes Getting to know the ingress controller

In a nutshell, an ingress controller is a reverse proxy for the Kubernetes universe. It acts as a reverse proxy, routing traffic from the outside world to the correct service within a Kubernetes cluster, and allows you to configure an HTTP or HTTPS load balancer for the said cluster.


To better understand this, let’s take a step back first and look at the Ingress itself. A Kubernetes Ingress is an API object that determines how incoming traffic from the internet should reach the internal cluster Services, which then in turn send requests to groups of Pods. The Ingress itself has no power over the system — it is actually a configuration request for the ingress controller.


The ingress controller accepts traffic from outside the Kubernetes platform and load balances it to Pods running inside the platform, this way adding a layer of abstraction to traffic routing. Ingress controllers convert configurations from Ingress resources into routing rules recognized and implemented by reverse proxies.


Ingress controllers are used to expose multiple services from within your Kubernetes cluster to the outside world, using a single endpoint — for example, a DNS name or IP address —  to access them. Specifically, ingress controllers are used to:


Expose multiple services under a single DNS name

Implement path-based routing, where different URLs map to different services

Implement host-based routing, where different hostnames map to different services

Implement basic authentication or other access control methods for your applications

Implement rate limiting for your applications

Offload SSL/TLS termination from your applications to the ingress controller

references:

https://traefik.io/blog/reverse-proxy-vs-ingress-controller-vs-api-gateway/#:~:text=Long%20story%20short%2C%20ingress%20controllers,network%20proxy%20tailored%20for%20microservices.

No comments:

Post a Comment