From e2f026702a1ca90a87b83ee74419858da1d8653d Mon Sep 17 00:00:00 2001 From: jamesbucher Date: Sun, 11 Jun 2017 11:40:07 -0700 Subject: [PATCH 1/2] Add AntiAffinity to kube-dns. #2693 --- .../k8s-1.6.yaml.template | 40 +++++++++++++++++++ .../pre-k8s-1.6.yaml.template | 26 ++++++++++++ 2 files changed, 66 insertions(+) diff --git a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template index 30546708f5fed..af825b39277c3 100644 --- a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template +++ b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template @@ -82,7 +82,47 @@ spec: scheduler.alpha.kubernetes.io/critical-pod: '' # For 1.6, we keep the old tolerations in case of a downgrade to 1.5 scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]' + # For 1.6, we keep the old affinity annotation in case of a downgrade to 1.5 + scheduler.alpha.kubernetes.io/affinity: > + { + "podAntiAffinity": { + "preferredDuringSchedulingIgnoredDuringExecution": [ + { + "weight": 100, + "podAffinityTerm": { + "labelSelector": { + "matchExpressions": [ + { + "key": "k8s-addon", + "operator": "In", + "values": ["dns-controller.addons.k8s.io"] + }, + { + "key": "k8s-app", + "operator": "In", + "values": ["dns-controller"] + } + ] + } + } + } + ] + } + } spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: k8s-addon + operator: In + values: ["dns-controller.addons.k8s.io"] + - key: k8s-app + operator: In + values: ["dns-controller"] dnsPolicy: Default # Don't use cluster DNS. serviceAccountName: kube-dns volumes: diff --git a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template index 09097ae754289..f3870ffca698a 100644 --- a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template +++ b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template @@ -29,6 +29,32 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]' + scheduler.alpha.kubernetes.io/affinity: > + { + "podAntiAffinity": { + "preferredDuringSchedulingIgnoredDuringExecution": [ + { + "weight": 100, + "podAffinityTerm": { + "labelSelector": { + "matchExpressions": [ + { + "key": "k8s-addon", + "operator": "In", + "values": ["dns-controller.addons.k8s.io"] + }, + { + "key": "k8s-app", + "operator": "In", + "values": ["dns-controller"] + } + ] + } + } + } + ] + } + } spec: containers: - name: autoscaler From 097e9f2a2aad01c7a55e3bc1c77dbb0eddfed65d Mon Sep 17 00:00:00 2001 From: jamesbucher Date: Tue, 13 Jun 2017 20:43:20 -0700 Subject: [PATCH 2/2] Fix annotations, change to requiredDuringSchedulingIgnoredDuringExecution --- .../k8s-1.6.yaml.template | 47 +++++++------------ .../pre-k8s-1.6.yaml.template | 45 ++++++++---------- 2 files changed, 37 insertions(+), 55 deletions(-) diff --git a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template index af825b39277c3..2a752f09d2c4e 100644 --- a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template +++ b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/k8s-1.6.yaml.template @@ -86,25 +86,18 @@ spec: scheduler.alpha.kubernetes.io/affinity: > { "podAntiAffinity": { - "preferredDuringSchedulingIgnoredDuringExecution": [ + "requiredDuringSchedulingIgnoredDuringExecution": [ { - "weight": 100, - "podAffinityTerm": { - "labelSelector": { - "matchExpressions": [ - { - "key": "k8s-addon", - "operator": "In", - "values": ["dns-controller.addons.k8s.io"] - }, - { - "key": "k8s-app", - "operator": "In", - "values": ["dns-controller"] - } - ] - } - } + "labelSelector": { + "matchExpressions": [ + { + "key": "k8s-app", + "operator": "In", + "values": ["kube-dns"] + } + ] + }, + "topologyKey": "kubernetes.io/hostname" } ] } @@ -112,17 +105,13 @@ spec: spec: affinity: podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - podAffinityTerm: - labelSelector: - matchExpressions: - - key: k8s-addon - operator: In - values: ["dns-controller.addons.k8s.io"] - - key: k8s-app - operator: In - values: ["dns-controller"] + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: k8s-app + operator: In + values: ["kube-dns"] + topologyKey: kubernetes.io/hostname dnsPolicy: Default # Don't use cluster DNS. serviceAccountName: kube-dns volumes: diff --git a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template index f3870ffca698a..65eb48761d42d 100644 --- a/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template +++ b/upup/models/cloudup/resources/addons/kube-dns.addons.k8s.io/pre-k8s-1.6.yaml.template @@ -29,32 +29,6 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]' - scheduler.alpha.kubernetes.io/affinity: > - { - "podAntiAffinity": { - "preferredDuringSchedulingIgnoredDuringExecution": [ - { - "weight": 100, - "podAffinityTerm": { - "labelSelector": { - "matchExpressions": [ - { - "key": "k8s-addon", - "operator": "In", - "values": ["dns-controller.addons.k8s.io"] - }, - { - "key": "k8s-app", - "operator": "In", - "values": ["dns-controller"] - } - ] - } - } - } - ] - } - } spec: containers: - name: autoscaler @@ -106,6 +80,25 @@ spec: annotations: scheduler.alpha.kubernetes.io/critical-pod: '' scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]' + scheduler.alpha.kubernetes.io/affinity: > + { + "podAntiAffinity": { + "requiredDuringSchedulingIgnoredDuringExecution": [ + { + "labelSelector": { + "matchExpressions": [ + { + "key": "k8s-app", + "operator": "In", + "values": ["kube-dns"] + } + ] + }, + "topologyKey": "kubernetes.io/hostname" + } + ] + } + } spec: containers: - name: kubedns