能够在更高级别定义一种方法来确定一组 pod 应该在其上运行的一组节点对我来说很有用。
有没有办法使用 kustomize 以便我可以指定部署应该有哪些 nodeSelectors?
能够在更高级别定义一种方法来确定一组 pod 应该在其上运行的一组节点对我来说很有用。
有没有办法使用 kustomize 以便我可以指定部署应该有哪些 nodeSelectors?
我最终只是定义了一个补丁:
在kustomization.yaml
:
patchesStrategicMerge:
- nodeSelectors.yaml
在nodeSelectors.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
spec:
template:
spec:
nodeSelector:
group: infra
slurm: mysql
有点啰嗦;但我想它在定义我关心的 pod 和位置方面提供了最大的灵活性。
我认为你可以tain节点。这种节点是为特定的 pod 保留的。
节点亲和性,是 pod 的一种属性,可将它们吸引到一组节点(作为偏好或硬性要求)。污点是相反的——它们允许一个节点排斥一组 pod。
污点和容忍一起工作,以确保 Pod 不会被调度到不合适的节点上。一个或多个污点应用于一个节点;这标志着该节点不应接受任何不容忍污点的 pod。Tolerations 应用于 Pod,并允许(但不要求)Pod 调度到具有匹配污点的节点上。
污点和容忍是一种灵活的方式来引导 pod 远离节点或驱逐不应该运行的 pod。以下是其中几个示例:
您可以在此处找到更多信息:特定 pod 的 Kubernetes 节点。
有趣的文档:taint-toleration-dedicated。