Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit d55ce93

Browse files
author
Yifan Gu
authored
Merge pull request #434 from squat/workload_separation
templates: add toleration to control-plane components
2 parents 93eb145 + 26d0fbb commit d55ce93

File tree

3 files changed

+88
-42
lines changed

3 files changed

+88
-42
lines changed

hack/multi-node/bootkube-up

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ if [ ! -d "cluster" ]; then
2323
../../_output/bin/${local_os}/bootkube render --asset-dir=cluster --api-servers=https://172.17.4.101:443 ${etcd_render_flags}
2424
cp user-data.sample cluster/user-data-worker
2525
cp user-data.sample cluster/user-data-controller
26-
sed -i.bak -e '/--node-labels=node-role.kubernetes.io\/master/d' cluster/user-data-worker
26+
sed -i.bak -e '/node-role.kubernetes.io\/master/d' cluster/user-data-worker
2727
fi
2828

2929
# Start the VM

hack/multi-node/user-data.sample

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ coreos:
3232
--allow-privileged \
3333
--hostname-override=${COREOS_PUBLIC_IPV4} \
3434
--node-labels=node-role.kubernetes.io/master \
35+
--register-with-taints=node-role.kubernetes.io/master:NoSchedule \
3536
--cluster_dns=10.3.0.10 \
3637
--cluster_domain=cluster.local
3738

pkg/asset/internal/templates.go

Lines changed: 86 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ spec:
9999
mountPath: /rootfs
100100
hostNetwork: true
101101
hostPID: true
102+
tolerations:
103+
- key: node-role.kubernetes.io/master
104+
operator: Equal
105+
value: ""
106+
effect: NoSchedule
102107
volumes:
103108
- name: dev
104109
hostPath:
@@ -147,12 +152,6 @@ spec:
147152
checkpointer.alpha.coreos.com/checkpoint: "true"
148153
scheduler.alpha.kubernetes.io/critical-pod: ''
149154
spec:
150-
tolerations:
151-
- key: "CriticalAddonsOnly"
152-
operator: "Exists"
153-
nodeSelector:
154-
node-role.kubernetes.io/master: ""
155-
hostNetwork: true
156155
containers:
157156
- name: kube-apiserver
158157
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
@@ -201,6 +200,16 @@ spec:
201200
- mountPath: /var/lock
202201
name: var-lock
203202
readOnly: false
203+
hostNetwork: true
204+
nodeSelector:
205+
node-role.kubernetes.io/master: ""
206+
tolerations:
207+
- key: CriticalAddonsOnly
208+
operator: Exists
209+
- key: node-role.kubernetes.io/master
210+
operator: Equal
211+
value: ""
212+
effect: NoSchedule
204213
volumes:
205214
- name: ssl-certs-host
206215
hostPath:
@@ -219,7 +228,6 @@ metadata:
219228
name: bootstrap-kube-apiserver
220229
namespace: kube-system
221230
spec:
222-
hostNetwork: true
223231
containers:
224232
- name: kube-apiserver
225233
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
@@ -260,6 +268,7 @@ spec:
260268
- mountPath: /var/lock
261269
name: var-lock
262270
readOnly: false
271+
hostNetwork: true
263272
volumes:
264273
- name: secrets
265274
hostPath:
@@ -289,9 +298,6 @@ spec:
289298
annotations:
290299
checkpointer.alpha.coreos.com/checkpoint: "true"
291300
spec:
292-
nodeSelector:
293-
node-role.kubernetes.io/master: ""
294-
hostNetwork: true
295301
containers:
296302
- image: quay.io/coreos/kenc:48b6feceeee56c657ea9263f47b6ea091e8d3035
297303
name: kenc
@@ -309,6 +315,14 @@ spec:
309315
- /var/lock/kenc.lock
310316
- -c
311317
- "kenc -r -m iptables && kenc -m iptables"
318+
hostNetwork: true
319+
nodeSelector:
320+
node-role.kubernetes.io/master: ""
321+
tolerations:
322+
- key: node-role.kubernetes.io/master
323+
operator: Equal
324+
value: ""
325+
effect: NoSchedule
312326
volumes:
313327
- name: checkpoint-dir
314328
hostPath:
@@ -335,9 +349,6 @@ spec:
335349
annotations:
336350
checkpointer.alpha.coreos.com/checkpoint: "true"
337351
spec:
338-
nodeSelector:
339-
node-role.kubernetes.io/master: ""
340-
hostNetwork: true
341352
containers:
342353
- name: checkpoint
343354
image: quay.io/coreos/pod-checkpointer:8a6356146761b512cc18ab77c8a421676f641c88
@@ -365,7 +376,14 @@ spec:
365376
- mountPath: /var/run
366377
name: var-run
367378
hostNetwork: true
379+
nodeSelector:
380+
node-role.kubernetes.io/master: ""
368381
restartPolicy: Always
382+
tolerations:
383+
- key: node-role.kubernetes.io/master
384+
operator: Equal
385+
value: ""
386+
effect: NoSchedule
369387
volumes:
370388
- name: etc-kubernetes
371389
hostPath:
@@ -392,9 +410,6 @@ spec:
392410
annotations:
393411
scheduler.alpha.kubernetes.io/critical-pod: ''
394412
spec:
395-
tolerations:
396-
- key: "CriticalAddonsOnly"
397-
operator: "Exists"
398413
affinity:
399414
podAntiAffinity:
400415
preferredDuringSchedulingIgnoredDuringExecution:
@@ -411,8 +426,6 @@ spec:
411426
values:
412427
- kube-contoller-manager
413428
topologyKey: kubernetes.io/hostname
414-
nodeSelector:
415-
node-role.kubernetes.io/master: ""
416429
containers:
417430
- name: kube-controller-manager
418431
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
@@ -439,6 +452,15 @@ spec:
439452
- name: ssl-host
440453
mountPath: /etc/ssl/certs
441454
readOnly: true
455+
nodeSelector:
456+
node-role.kubernetes.io/master: ""
457+
tolerations:
458+
- key: CriticalAddonsOnly
459+
operator: Exists
460+
- key: node-role.kubernetes.io/master
461+
operator: Equal
462+
value: ""
463+
effect: NoSchedule
442464
volumes:
443465
- name: secrets
444466
secret:
@@ -455,7 +477,6 @@ metadata:
455477
name: bootstrap-kube-controller-manager
456478
namespace: kube-system
457479
spec:
458-
hostNetwork: true
459480
containers:
460481
- name: kube-controller-manager
461482
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
@@ -476,6 +497,7 @@ spec:
476497
- name: ssl-host
477498
mountPath: /etc/ssl/certs
478499
readOnly: true
500+
hostNetwork: true
479501
volumes:
480502
- name: secrets
481503
hostPath:
@@ -514,9 +536,6 @@ spec:
514536
annotations:
515537
scheduler.alpha.kubernetes.io/critical-pod: ''
516538
spec:
517-
tolerations:
518-
- key: "CriticalAddonsOnly"
519-
operator: "Exists"
520539
affinity:
521540
podAntiAffinity:
522541
preferredDuringSchedulingIgnoredDuringExecution:
@@ -533,8 +552,6 @@ spec:
533552
values:
534553
- kube-scheduler
535554
topologyKey: kubernetes.io/hostname
536-
nodeSelector:
537-
node-role.kubernetes.io/master: ""
538555
containers:
539556
- name: kube-scheduler
540557
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
@@ -548,7 +565,15 @@ spec:
548565
port: 10251 # Note: Using default port. Update if --port option is set differently.
549566
initialDelaySeconds: 15
550567
timeoutSeconds: 15
551-
568+
nodeSelector:
569+
node-role.kubernetes.io/master: ""
570+
tolerations:
571+
- key: CriticalAddonsOnly
572+
operator: Exists
573+
- key: node-role.kubernetes.io/master
574+
operator: Equal
575+
value: ""
576+
effect: NoSchedule
552577
`)
553578

554579
BootstrapSchedulerTemplate = []byte(`apiVersion: v1
@@ -557,7 +582,6 @@ metadata:
557582
name: bootstrap-kube-scheduler
558583
namespace: kube-system
559584
spec:
560-
hostNetwork: true
561585
containers:
562586
- name: kube-scheduler
563587
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
@@ -566,6 +590,7 @@ spec:
566590
- scheduler
567591
- --leader-elect=true
568592
- --master=http://127.0.0.1:8080
593+
hostNetwork: true
569594
`)
570595
SchedulerDisruptionTemplate = []byte(`apiVersion: policy/v1beta1
571596
kind: PodDisruptionBudget
@@ -596,10 +621,6 @@ spec:
596621
annotations:
597622
scheduler.alpha.kubernetes.io/critical-pod: ''
598623
spec:
599-
tolerations:
600-
- key: "CriticalAddonsOnly"
601-
operator: "Exists"
602-
hostNetwork: true
603624
containers:
604625
- name: kube-proxy
605626
image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
@@ -624,6 +645,14 @@ spec:
624645
- name: etc-kubernetes
625646
mountPath: /etc/kubernetes
626647
readOnly: true
648+
hostNetwork: true
649+
tolerations:
650+
- key: CriticalAddonsOnly
651+
operator: Exists
652+
- key: node-role.kubernetes.io/master
653+
operator: Equal
654+
value: ""
655+
effect: NoSchedule
627656
volumes:
628657
- hostPath:
629658
path: /usr/share/ca-certificates
@@ -659,14 +688,6 @@ spec:
659688
annotations:
660689
scheduler.alpha.kubernetes.io/critical-pod: ''
661690
spec:
662-
tolerations:
663-
- key: "CriticalAddonsOnly"
664-
operator: "Exists"
665-
volumes:
666-
- name: kube-dns-config
667-
configMap:
668-
name: kube-dns
669-
optional: true
670691
containers:
671692
- name: kubedns
672693
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1
@@ -782,6 +803,20 @@ spec:
782803
memory: 20Mi
783804
cpu: 10m
784805
dnsPolicy: Default # Don't use cluster DNS.
806+
nodeSelector:
807+
node-role.kubernetes.io/master: ""
808+
tolerations:
809+
- key: CriticalAddonsOnly
810+
operator: Exists
811+
- key: node-role.kubernetes.io/master
812+
operator: Equal
813+
value: ""
814+
effect: NoSchedule
815+
volumes:
816+
- name: kube-dns-config
817+
configMap:
818+
name: kube-dns
819+
optional: true
785820
`)
786821
DNSSvcTemplate = []byte(`apiVersion: v1
787822
kind: Service
@@ -831,6 +866,11 @@ spec:
831866
valueFrom:
832867
fieldRef:
833868
fieldPath: metadata.name
869+
tolerations:
870+
- key: node-role.kubernetes.io/master
871+
operator: Equal
872+
value: ""
873+
effect: NoSchedule
834874
`)
835875

836876
EtcdSvcTemplate = []byte(`apiVersion: v1
@@ -857,8 +897,6 @@ metadata:
857897
labels:
858898
k8s-app: boot-etcd
859899
spec:
860-
hostNetwork: true
861-
restartPolicy: Never
862900
containers:
863901
- name: etcd
864902
image: quay.io/coreos/etcd:v3.1.0
@@ -878,6 +916,8 @@ spec:
878916
valueFrom:
879917
fieldRef:
880918
fieldPath: status.podIP
919+
hostNetwork: true
920+
restartPolicy: Never
881921
`)
882922

883923
KubeFlannelCfgTemplate = []byte(`apiVersion: v1
@@ -921,7 +961,6 @@ spec:
921961
tier: node
922962
app: flannel
923963
spec:
924-
hostNetwork: true
925964
containers:
926965
- name: kube-flannel
927966
image: quay.io/coreos/flannel:v0.7.0-amd64
@@ -956,6 +995,12 @@ spec:
956995
mountPath: /etc/cni/net.d
957996
- name: flannel-cfg
958997
mountPath: /etc/kube-flannel/
998+
hostNetwork: true
999+
tolerations:
1000+
- key: node-role.kubernetes.io/master
1001+
operator: Equal
1002+
value: ""
1003+
effect: NoSchedule
9591004
volumes:
9601005
- name: run
9611006
hostPath:

0 commit comments

Comments
 (0)