A distributed DNS service for service discovery built on top of etcd, using DNS queries to locate available services.
SkyDNS is a distributed DNS service for service discovery built on top of etcd. It allows services to announce themselves in etcd and be discovered via standard DNS queries, solving the problem of dynamic service location in microservices and containerized environments. It translates etcd keys into DNS records, enabling clients to find services using familiar DNS tools and libraries.
Developers and operators building distributed systems, microservices architectures, or containerized deployments (e.g., with Docker) who need a lightweight, DNS-based service discovery solution. It's particularly relevant for teams using etcd as their coordination store.
SkyDNS offers a simple, standards-based approach to service discovery by leveraging DNS, which is widely supported and understood. Its tight integration with etcd provides a consistent, distributed backend, and its ability to handle wildcards, DNSSEC, and forwarding makes it flexible for various infrastructure needs.
DNS service discovery for etcd
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses standard DNS queries (SRV, A, TXT) for service discovery, making it compatible with existing client libraries and tools without modifications, as demonstrated by the extensive examples in the README.
Leverages etcd for distributed consistency and storage, providing a reliable backend for service announcements and dynamic updates, which is core to its design as a thin layer above etcd.
Supports wildcard and subdomain queries (e.g., *.east.skydns.local) to efficiently discover groups of services, enabling scalable service lookup patterns as shown in the README.
Offers DNSSEC support with NSEC3 for signed answers and can forward non-authoritative queries, acting as a full DNS proxy for broader infrastructure integration.
Requires a running etcd cluster and stores configuration in etcd, adding operational overhead and introducing a single point of failure if etcd is unavailable, as noted in the setup instructions.
Services must be registered manually via HTTP calls to etcd (e.g., using curl), lacking automatic registration and health checking features common in modern service discovery tools like Consul.
Missing built-in capabilities for load balancing, health checks, or service mesh functionalities, which are often expected in comprehensive service discovery solutions.