一般来说,kubernetes 的pod是不在master 节点上运行的。
如果要求pod 必须被调度到master 节点上运行,可以修改pod 的 toleration 和 affinity。
toleration和affinity:#
在pod加上toleration和affinity配置
yaml#
1
2
3
4
5
6
7
8
9
10
11
12
13
| spec:
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Equal"
value: "true"
effect: "NoSchedule"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/master
operator: Exists
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| + Operator: apiv1.TolerationOpExists,
+ Effect: apiv1.TaintEffectNoSchedule,
+ },
+ },
+ Affinity: &apiv1.Affinity{
+ NodeAffinity: &apiv1.NodeAffinity{
+ RequiredDuringSchedulingIgnoredDuringExecution: &apiv1.NodeSelector{
+ NodeSelectorTerms: []apiv1.NodeSelectorTerm{
+ apiv1.NodeSelectorTerm{
+ MatchExpressions: []apiv1.NodeSelectorRequirement{
+ apiv1.NodeSelectorRequirement{
+ Key: "node-role.kubernetes.io/master",
+ Operator: apiv1.NodeSelectorOpExists,
+ },
+ },
+ },
+ },
+ },
|