我们可以在kubernetes中的单个nodeSelector中提到多个节点标签

我想在两个特定的节点(我们的kube集群共有15个节点)安排10个豆荚。

所以在复制控制器文件中,我提到nodeSelector中的两个值,如下所示。

nodeSelector: app: node1 app: node2 

问题是,它总是只采取node2.whatever我提到的序列,它只是最后一个节点。

注意: node1node2是节点的标签。

是的你可以。

如果要将Pod调度为node1或node2,则可以使用相同的标签(例如, app=node )为两个节点添加标签,然后将app=node添加为nodeSelector 。 您可以根据需要添加任意数量的标签,但是像CJ提到的那样, nodeSelector是一个包含键和值对的映射,因此不能使用具有不同值的相同键。

可以在任何满足nodeSelector的节点上调度nodeSelector

有关更多信息,请阅读将节点分配给节点 。 请注意,有一个名为nodeAffinity的新function,您可能也想尝试。

nodeSelector上的PodSpec只是一个map[string]string (而不是NodeAffinity对象中使用的更多特性的NodeSelectortypes)。这意味着键“app”只能有一个值,最后被覆盖作为“node2”。

您可以通过应用通用标签(例如, scheduling-group: foo )来完成node1和node2之间的调度,然后让您的replicationController使用该标签作为nodeSelector