我有一个要求,我想在特定节点上调度特定类型的Pod,并且该节点上不应调度其他类型的Pod。例如,
假设我有3个工作节点-w1,w2和w3 我希望类型(例如POD-w2)的豆荚总是在w2上调度,而其他类型的豆荚都不应在w2上调度。
答案 0 :(得分:1)
为工作人员2添加标签type = w2。
使用节点选择器或节点相似性在该节点上调度所需的Pod。
对于其他Pod,请使用节点反关联性,以防止将其他Pod安排到工作程序2
答案 1 :(得分:1)
要将节点专门用于特定类型的Pod,应按照here所述taint
节点。然后,在您的部署/吊舱定义中为节点异味创建一个toleration
,以确保只能在受污染的节点上调度该类型的吊舱。
答案 2 :(得分:0)
要实现此目的,我们必须通过标记节点来污染节点以及亲和力。所需的吊舱应能承受污点并同时满足亲和力。这样,pod将仅在专用节点上进行调度。
示例:
kubectl taint nodes <dedicated_node_name> dedicated=myservice:NoSchedule
kubectl label node <dedicated_node_name> dedicated=myservice
然后在部署规范中使用容忍度和亲和力
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: dedicated
operator: In
values:
- myservice
和
tolerations:
- effect: NoSchedule
key: dedicated
operator: Equal
value: myservice