Member-only story
DevOps in K8s — Ingress, Part One
Note, full “DevOps in K8s” mind map is available at: “DevOps in K8s Mind Map”
From my previous articles, I introduced the functions and operational mechanism of K8s Service. It fundamentally operates as a kube-proxy controlled, layer-four load balancer, routing traffic on the TCP/IP protocol stack.
However, the load balancing capabilities at this layer are somewhat restricted, providing basic decision-making and combinations based solely on IP addresses and port numbers.
The majority of our current applications function on the layer-seven HTTP/HTTPS protocol. This layer has advanced routing criteria like hostnames, URIs, request headers, certificates and so on, which remain unseen in the TCP/IP network stack.
Another challenge with Service is its optimal use within the cluster to proxy services. Exposing services outside the cluster confines us to using either NodePort or LoadBalancer methods. However, both of these options lack the flexibility we need and are cumbersome to manage.
Ingress
To solve the above problems, K8s provides a resource called Ingress. An Ingress is an API object that manages external access to the services in a cluster. It provides HTTP and HTTPS routes to…