What’s the Difference Between DNS and Service Discovery?
The quick answer is service discovery (SD) is for internal use, so one of your internal applications can find another within your system. DNS is for external use, so someone (or some malign toaster) on the other side of your load balancer can talk to your application.
You might have SD without DNS for a service that is not externally accessible. You might have DNS without SD for a system where everything has hardcoded IP addresses that internal applications use to talk to one another.
What can be confusing is some SD tools, like Consul, provide both SD and DNS (i.e. Consul also has DNS support) but that isn’t true of all SD products (for example, etcd and zookeeper don’t do DNS).