Introduction
When you run multiple parts of an application in Kubernetes, they need to find and talk to each other. Service discovery via DNS lets these parts find each other by simple names instead of complicated IP addresses.
When you want your app components to communicate without hardcoding IP addresses.
When you deploy a database and want your app to find it by a simple name.
When you scale your app and new copies need to be reachable automatically.
When you want to connect microservices inside the same Kubernetes cluster.
When you want to avoid manual updates of service addresses after restarts.