In dynamic environments containers start and stop constantly. Service discovery lets services find each other automatically.
# Tools
# Kubernetes DNS -- built-in, automatic
# Consul -- HashiCorp, health-aware
# Eureka -- Netflix OSS, Java-heavy
# Kubernetes DNS (automatic)
# Service named 'user-service' in 'default' namespace:
http://user-service # same namespace
http://user-service.default.svc.cluster.local # FQDN
# Consul registration
POST /v1/agent/service/register
{
"Name": "user-service",
"Port": 3001,
"Check": {"HTTP":"/health","Interval":"10s"}
}