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

问题描述 投票:1回答:3

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

假设我有3个工作节点 - w1,w2和w3我想要类型的pod(比如POD-w2)应该总是在w2上安排,并且不应该在w2上安排其他类型的pod。

kubernetes
3个回答
1
投票

向worker 2添加标签type = w2。

使用节点选择器或节点关联来计划该节点上所需的pod。

对于其他pod,使用节点反关联来防止其他pod被安排到worker 2


1
投票

要专门为特定类型的pod使用节点,您应该taint您的节点,如here所述。然后,在部署/窗格定义中为节点污点创建toleration,以确保只能在受污染的节点上调度该类型的pod。


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

© www.soinside.com 2019 - 2024. All rights reserved.