如果能够在更高的层次上定义一种方法来确定一组pod应该在其上运行的一组节点,这对我来说将是非常有用的。有没有一种方法可以使用自定义,以便我可以指定部署应该有什么nodeselector?
6qqygrtg1#
我最后只是定义了一个补丁:在kustomization.yaml中:
kustomization.yaml
patchesStrategicMerge: - nodeSelectors.yaml
在nodeSelectors.yaml中
nodeSelectors.yaml
apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql spec: template: spec: nodeSelector: group: infra slurm: mysql
有点冗长;但我猜它给了最大的灵活性,在定义哪些豆荚我关心平和在哪里。
oknrviil2#
OP要求所有pod都能在一组预定义的节点上运行,因此,添加到@yee379后,您可以定义一个补丁,一次应用于多个通用资源,如下所示:
patches: - patch: |- kind: not-important metadata: name: not-important spec: template: spec: nodeSelector: key: value target: kind: (StatefulSet|Deployment|Job) # ... Include more resources # If you'd like to include Pods specifically: - patch: |- kind: not-important metadata: name: not-important spec: nodeSelector: key: value target: kind: Pod
cgfeq70w3#
我想你可以tain节点,这种节点是为特定的pod预留的。节点亲和性,是一个吸引他们到一组节点(作为一个偏好或硬要求)荚的属性。污染是相反的-他们允许一个节点排斥一组荚。污点和容差一起工作以确保pod不被调度到不适当的节点上。一个或多个污点被应用到一个节点;这标志着节点不应该接受任何不容许污染的POD。容差被应用于POD,并且允许(但不要求)POD调度到具有匹配污染的节点上。污点和容忍度是一种灵活的方法,可以引导pod远离节点或驱逐不应该运行的pod。下面是其中的一些例子:
您可以在此处找到更多信息:Kubernetes node for specific pods.有趣的文档:taint-toleration-dedicated.
3条答案
按热度按时间6qqygrtg1#
我最后只是定义了一个补丁:
在
kustomization.yaml
中:在
nodeSelectors.yaml
中有点冗长;但我猜它给了最大的灵活性,在定义哪些豆荚我关心平和在哪里。
oknrviil2#
OP要求所有pod都能在一组预定义的节点上运行,因此,添加到@yee379后,您可以定义一个补丁,一次应用于多个通用资源,如下所示:
cgfeq70w3#
我想你可以tain节点,这种节点是为特定的pod预留的。
节点亲和性,是一个吸引他们到一组节点(作为一个偏好或硬要求)荚的属性。污染是相反的-他们允许一个节点排斥一组荚。
污点和容差一起工作以确保pod不被调度到不适当的节点上。一个或多个污点被应用到一个节点;这标志着节点不应该接受任何不容许污染的POD。容差被应用于POD,并且允许(但不要求)POD调度到具有匹配污染的节点上。
污点和容忍度是一种灵活的方法,可以引导pod远离节点或驱逐不应该运行的pod。下面是其中的一些例子:
您可以在此处找到更多信息:Kubernetes node for specific pods.
有趣的文档:taint-toleration-dedicated.