Kubernetes工作者节点仅适用于特定类型的Pod

时间:2019-04-10 19:38:47

标签: kubernetes

我有一个要求,我想在特定节点上调度特定类型的Pod,并且该节点上不应调度其他类型的Pod。例如,

假设我有3个工作节点-w1,w2和w3 我希望类型(例如POD-w2)的豆荚总是在w2上调度,而其他类型的豆荚都不应在w2上调度。

3 个答案:

答案 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