From ab7d65cd4e2502225172e44459d79a82c4404b90 Mon Sep 17 00:00:00 2001 From: prameshj Date: Wed, 29 May 2019 10:44:16 -0700 Subject: [PATCH] Create nodelocaldns.md This contains info about NodeLocal DnsCache feature. --- .../tasks/administer-cluster/nodelocaldns.jpg | Bin 0 -> 37691 bytes .../tasks/administer-cluster/nodelocaldns.md | 60 ++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 content/en/docs/tasks/administer-cluster/nodelocaldns.jpg create mode 100644 content/en/docs/tasks/administer-cluster/nodelocaldns.md diff --git a/content/en/docs/tasks/administer-cluster/nodelocaldns.jpg b/content/en/docs/tasks/administer-cluster/nodelocaldns.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e42b86ea0247a45bc322d698978265926e12a59e GIT binary patch literal 37691 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%0D(SOfYFJ}VygPd%nS;B8 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 literal 0 HcmV?d00001 diff --git a/content/en/docs/tasks/administer-cluster/nodelocaldns.md b/content/en/docs/tasks/administer-cluster/nodelocaldns.md new file mode 100644 index 0000000000000..a057f68d57aa0 --- /dev/null +++ b/content/en/docs/tasks/administer-cluster/nodelocaldns.md @@ -0,0 +1,60 @@ +--- +reviewers: +- bowei +- zihongz +title: Using NodeLocal DNSCache in Kubernetes clusters +content_template: templates/task +--- + +{{% capture overview %}} +This page provides an overview of NodeLocal DNSCache feature in Kubernetes. +{{% /capture %}} + +{{% capture body %}} + +## Introduction + +NodeLocal DNSCache improves Cluster DNS performance by running a dns caching agent on cluster nodes as a Daemonset. In today's architecture, pods in ClusterFirst DNS mode reach out to a kube-dns serviceIP for DNS queries. This is translated to a kube-dns endpoint via iptables rules added by kube-proxy. With this new architecture, pods will reach out to the dns caching agent running on the same node, thereby avoiding iptables DNAT rules and connection tracking. The local caching agent will query kube-dns for cache misses of cluster hostnames(cluster.local suffix by default). + + +## Motivation + +* With the current DNS architecture, it is possible that pods with the highest DNS QPS have to reach out to a different node, if there is no local kube-dns instance. +Having a local cache will help improve the latency in such scenarios. + +* Skipping iptables DNAT and connection tracking will help reduce [conntrack races](https://github.com/kubernetes/kubernetes/issues/56903) and avoid UDP DNS entries filling up conntrack table. + +* Connections from local caching agent to kube-dns can be upgraded to TCP. TCP conntrack entries will be removed on connection close in contrast with UDP entries that have to timeout ([default](https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt) `nf_conntrack_udp_timeout` is 30 seconds) + +* Upgrading DNS queries from UDP to TCP would reduce tail latency attributed to dropped UDP packets and DNS timeouts usually up to 30s (3 retries + 10s timeout). Since the nodelocal cache listens for UDP DNS queries, applications don't need to be changed. + +* Metrics & visibility into dns requests at a node level. + +* Neg caching can be re-enabled, thereby reducing number of queries to kube-dns. + +## Architecture Diagram + +This is the path followed by DNS Queries after NodeLocal DNSCache is enabled: + +![ ](nodelocaldns.jpg "NodeLocal DNSCache") + +## Configuration + +This feature can be enabled using the command: + +`KUBE_ENABLE_NODELOCAL_DNS=true go run hack/e2e.go -v --up` + +This works for e2e clusters created on GCE. On all other environments, the following steps will setup NodeLocal DNSCache: +* A yaml similar to [this](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml) can be applied using `kubectl create -f` command. +* --cluster-dns flag to kubelet needs to be modified to use the LOCAL_DNS IP that NodeLocal DNSCache is listening on (169.254.20.10 by default) + +Once enabled, node-local-dns pods will run in the kube-system namespace on each of the cluster nodes. This pod runs CoreDNS in cache mode, so all CoreDNS metrics exposed by the different plugins will be available on a per-node basis. + +### Feature availability + +The addon can be applied using the yaml specified above in any k8s version. The feature support is as described: + +| k8s version | Feature support | +| :---------: |:-----------:| +| 1.15 | Beta | +| 1.13 | Alpha |