kubernetes/cluster/addons/dns
Kubernetes Submit Queue ef87482923 Merge pull request #52193 from StevenACoffman/kube-dns-anti-affinity
Automatic merge from submit-queue (batch tested with PRs 53106, 52193, 51250, 52449, 53861). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

kube-dns-anti-affinity: kube-dns never-co-located-in-the-same-node

**What this PR does / why we need it**:

This is upstreaming the kubernetes/kops#2705 pull request by @jamesbucher that was originally against [kops](github.com/kubernetes/kops).
Please see kubernetes/kops#2705 for more details, including a lengthy discussion.

Briefly, given the constraints of how the system works today:

+ if you need multiple DNS pods primarily for availability, then requiredDuringSchedulingIgnoredDuringExecution makes sense because putting more than one DNS pod on the same node isn't useful
+ if you need multiple DNS pods primarily for performance, then
preferredDuringScheduling IgnoredDuringExecution makes sense because it will allow the DNS pods to schedule even if they can't be spread across nodes

**Which issue this PR fixes**

fixes kubernetes/kops#2693

**Release note**:


```release-note
Improve resilience by annotating kube-dns addon with podAntiAffinity to prefer scheduling on different nodes.
```
2017-10-16 14:47:20 -07:00
..
kube-dns.yaml.base Merge pull request #52193 from StevenACoffman/kube-dns-anti-affinity 2017-10-16 14:47:20 -07:00
kube-dns.yaml.in Merge pull request #52193 from StevenACoffman/kube-dns-anti-affinity 2017-10-16 14:47:20 -07:00
kube-dns.yaml.sed Merge pull request #52193 from StevenACoffman/kube-dns-anti-affinity 2017-10-16 14:47:20 -07:00
Makefile Merge kube-dns templates into a single file 2017-10-03 09:43:52 -07:00
OWNERS OWNERS: Update latest OWNERS files 2017-01-23 10:05:48 -08:00
README.md Merge kube-dns templates into a single file 2017-10-03 09:43:52 -07:00
transforms2salt.sed Remove FEDERATIONS_DOMAIN_MAP references 2017-03-15 23:06:16 +05:30
transforms2sed.sed Remove FEDERATIONS_DOMAIN_MAP references 2017-03-15 23:06:16 +05:30

kube-dns

kube-dns schedules DNS Pods and Service on the cluster, other pods in cluster can use the DNS Services IP to resolve DNS names.

Manually scale kube-dns Deployment

kube-dns creates only one DNS Pod by default. If dns-horizontal-autoscaler is not enabled, you may need to manually scale kube-dns Deployment.

Please use below kubectl scale command to scale:

kubectl --namespace=kube-system scale deployment kube-dns --replicas=<NUM_YOU_WANT>

Do not use kubectl edit to modify kube-dns Deployment object if it is controlled by Addon Manager. Otherwise the modifications will be clobbered, in addition the replicas count for kube-dns Deployment will be reset to 1. See Cluster add-ons README and #36411 for reference.

kube-dns addon templates

This directory contains the base UNDERSCORE templates that can be used to generate the kube-dns.yaml.in needed in Salt format.

Due to a varied preference in templating language choices, the transform Makefile in this directory should be enhanced to generate all required formats from the base underscore templates.

N.B.: When you add a parameter you should also update the various scripts that supply values for your new parameter. Here is one way you might find those scripts:

cd kubernetes && git grep 'kube-dns.yaml'

Base Template files

These are the authoritative base templates. Run 'make' to generate the Salt and Sed yaml templates from these.

kube-dns.yaml.base

Generated Salt files

kube-dns.yaml.in

Generated Sed files

kube-dns.yaml.sed

Analytics