42 lines
2.0 KiB
Markdown
42 lines
2.0 KiB
Markdown
---
|
|
---
|
|
|
|
## Introduction
|
|
|
|
As of Kubernetes 1.3, DNS is a built-in service launched automatically using the addon manager [cluster add-on](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/README.md).
|
|
A DNS Pod and Service will be scheduled on the cluster, and the kubelets will be
|
|
configured to tell individual containers to use the DNS Service's IP to resolve DNS names.
|
|
|
|
Every Service defined in the cluster (including the DNS server itself) will be
|
|
assigned a DNS name. By default, a client Pod's DNS search list will
|
|
include the Pod's own namespace and the cluster's default domain. This is best
|
|
illustrated by example:
|
|
|
|
Assume a Service named `foo` in the Kubernetes namespace `bar`. A Pod running
|
|
in namespace `bar` can look up this service by simply doing a DNS query for
|
|
`foo`. A Pod running in namespace `quux` can look up this service by doing a
|
|
DNS query for `foo.bar`.
|
|
|
|
The Kubernetes cluster DNS server (based off the [SkyDNS](https://github.com/skynetservices/skydns) library)
|
|
supports forward lookups (A records), service lookups (SRV records) and reverse IP address lookups (PTR records).
|
|
|
|
|
|
## How it Works
|
|
|
|
The running Kubernetes DNS pod holds 3 containers - kubedns, dnsmasq and a health check called healthz.
|
|
The kubedns process watches the Kubernetes master for changes in Services and Endpoints, and maintains
|
|
in-memory lookup structures to service DNS requests. The dnsmasq container adds DNS caching to improve
|
|
performance. The healthz container provides a single health check endpoint while performing dual healthchecks
|
|
(for dnsmasq and kubedns).
|
|
|
|
## Kubernetes Federation (Multiple Zone support)
|
|
|
|
The 1.3 release introduced Federation (Ubernetes) support for multisite Kubernetes installations. There are
|
|
DNS changes introduced that will allow the lookup of services using a six part DNS name.
|
|
See [Federation docs](/docs/admin/multiple-zones/) for more details on multiple site support.
|
|
|
|
## References
|
|
|
|
- [Docs for the DNS cluster addon](http://releases.k8s.io/{{page.githubbranch}}/cluster/addons/dns/README.md)
|
|
|