Chapter 6: Services, Load Balancing, and External DNS
When you deploy an application to a Kubernetes cluster, your pods are assigned ephemeral IP addresses. Since the assigned addresses are likely to change as pods are restarted, you should never target a service using a pod IP address; instead, you should use a service object, which will map a service IP address to backend pods based on labels. If you need to offer service access to external requests, you can deploy an Ingress controller, which will expose your service to external traffic on a per-URL basis. For more advanced workloads, you can deploy a load balancer, which provides your service with an external IP address, allowing you to expose any IP-based service to external requests.
We will explain how to implement each of these by deploying them on our KinD cluster. To help us understand how the Ingress works, we will deploy a NGINX Ingress controller to the cluster and expose a web server. Since Ingress rules are based...