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

Kubernetes工作节点仅适用于特定类型的pod,kubernetes,Kubernetes,我有一个要求,我想在一个特定的节点上安排一个特定类型的pod,而不应该在该节点上安排其他类型的pod。比如说, 假设我有3个工作节点—w1、w2和w3 我希望这种类型的吊舱(比如POD-w2)应该总是在w2上得到调度,并且没有其他类型的吊舱应该在w2上得到调度 将标签类型=w2添加到辅助工2 使用节点选择器或节点关联在该节点上调度所需的POD 对于其他pod,请使用节点反关联以防止其他pod被安排在worker 2上若要将节点专用于特定类型的pod,请按照说明污染节点。然后,在部署/pod定义中

我有一个要求,我想在一个特定的节点上安排一个特定类型的pod,而不应该在该节点上安排其他类型的pod。比如说,

假设我有3个工作节点—w1、w2和w3
我希望这种类型的吊舱(比如POD-w2)应该总是在w2上得到调度,并且没有其他类型的吊舱应该在w2上得到调度

将标签类型=w2添加到辅助工2

使用节点选择器或节点关联在该节点上调度所需的POD


对于其他pod,请使用节点反关联以防止其他pod被安排在worker 2上

若要将节点专用于特定类型的pod,请按照说明污染节点。然后,在部署/pod定义中为节点污染创建一个
容忍度
,以确保只有该类型的pod可以在受污染的节点上调度。

要实现这一点,我们必须通过标记节点来污染节点和关联性。所需的pod应能容忍污染并满足亲和力。通过这种方式,pod将只在专用节点上进行调度

例如:

kubectl taint nodes <dedicated_node_name> dedicated=myservice:NoSchedule


如果我只使用污染和容忍,那么pod也有可能被安排到其他工作节点。这取决于你如何指定污染。一般的经验法则是使用污点来指定POD可以/不能调度到的一组节点;使用
nodeSelector
为节点专门安排节点。我同意这会起作用,但问题是对于其他每个部署,我需要在部署规范中添加反亲和力,这是不可取的。查看污染和容忍。这会有帮助的。点击链接->
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