<p>What is the reasoning for using service discovery like <a href="https://www.consul.io/discovery.html" rel="nofollow noreferrer">Consul</a> instead of <a href="https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/" rel="nofollow noreferrer">Kubernetes internal DNS</a>, like <code>my-svc.my-namespace.svc.cluster.local</code>? I am wondering because I am starting on a fairly large project and want to make sure I'm not setting myself up for failure using the build in Kubernetes DNS.</p>

<p>The service discovery by DNS name itself (inside the cluster) is somehow similar. </p>

<p>Other technologies are adding more functionality to the stack like: Encrypted Traffic, Connection Authorization, Proxy Sidecars, etc </p>

<p>You can take a look here: <a href="https://www.hashicorp.com/blog/consul-1-2-service-mesh" rel="nofollow noreferrer">https://www.hashicorp.com/blog/consul-1-2-service-mesh</a> as an example. </p>

<p>Those frameworks will help reduce code on each container (example: retry/circuit breaker) by adding this 'plumbling' at the service level. </p>

<p>--M</p>
