使用kustomize修改nodeSelector的

时间:2019-12-05 21:15:31

标签: kubernetes kustomize

能够以更高的级别定义一种方法来确定一组Pod应该在其上运行的节点集。

是否有一种使用kustomize的方法,以便我可以指定部署应具有的nodeSelector?

2 个答案:

答案 0 :(得分:0)

我认为您可以tain个节点。此类节点保留用于特定的Pod。

节点亲和力是Pod的一种属性,可将Pod吸引到一组节点上(作为偏好或硬性要求)。相反,污渍-它们使节点可以排斥一组豆荚。

污渍和容忍度共同作用,以确保将豆荚安排在不适当的节点上。一个或多个污点应用于节点;这标志着节点不应该接受任何不能容忍污点的豆荚。容差应用于吊舱,并允许(但不要求)吊舱调度到具有匹配污点的节点上。

污渍和容忍度是一种灵活的方法,可将吊舱从不应运行的节点上移开或逐出吊舱。以下是其中一些示例:

  • 专用节点:如果您要专用于专用节点集 由一组特定的用户使用,您可以向这些节点添加污点 (例如,kubectl污点节点nodename private = groupName:NoSchedule) 然后向其吊舱添加相应的公差(这将是 通过编写自定义准入控制器最轻松地完成此操作)。豆荚 然后将允许使用带有污染的 (专用)节点以及群集中的任何其他节点。
  • 具有特殊硬件的节点:在群集中, 节点具有专用硬件(例如GPU),这是可取的 使不需要专用硬件的豆荚远离那些 节点,从而为确实需要 专用硬件。这可以通过污染以下节点来完成: 具有专门的硬件(例如kubectl异味节点nodename special = true:NoSchedule或kubectl异味节点nodename special = true:PreferNoSchedule)并添加相应的公差 到使用特殊硬件的吊舱。
  • 基于污垢的逐出(测试版功能):按每个结点可配置的逐出 出现节点问题时的行为,将在下一部分中描述 部分。

您可以在这里找到更多信息:Kubernetes node for specific pods

有趣的文档:taint-toleration-dedicated

答案 1 :(得分:0)

我最终只是定义了一个补丁:

kustomization.yaml中:

patchesStrategicMerge:
- nodeSelectors.yaml

nodeSelectors.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: mysql
spec:
  template:
    spec:
      nodeSelector:
        group: infra
        slurm: mysql
有点>绕;但我想它在定义我关心的Pod以及在何处定义方面提供了最大的灵活性。