Kubernetes openshift将一个项目中的POD分发到特定节点

Kubernetes openshift将一个项目中的POD分发到特定节点,kubernetes,openshift,Kubernetes,Openshift,我的集群上有3个cpu节点和1个gpu节点。默认情况下 项目应部署到cpu节点,并且仅当指定到 gpu节点。我将defaultNodeSelector:“graphic=cpu”添加到 在master config.yaml中的projectConfig部分实现此目的 现在的问题是,当我创建一个deploymentConfig并将其分配给gpu时 节点使用节点选择器时,我发现错误pod节点标签选择器与其项目节点标签选择器冲突 我尝试删除defaultNodeSelector行并添加 nodeSe

我的集群上有3个cpu节点和1个gpu节点。默认情况下 项目应部署到cpu节点,并且仅当指定到 gpu节点。我将
defaultNodeSelector:“graphic=cpu”
添加到 在
master config.yaml
中的projectConfig部分实现此目的

现在的问题是,当我创建一个deploymentConfig并将其分配给gpu时 节点使用节点选择器时,我发现错误
pod节点标签选择器与其项目节点标签选择器冲突

我尝试删除defaultNodeSelector行并添加
nodeSelectorLabelBlacklist:-graphic=gpu
到podNodeConstraint 在
master config.yaml
中的部分,但这根本不起作用。尽管如此 配置已调度到gpu节点的默认项目的POD:/


有人知道如何实现这些功能吗?

您在这里设置了一个集群范围的配置,不能在Pod级别覆盖

假设您有其他项目想要利用集群范围的配置,那么这个实例中最简单的修复方法可能是编辑这个特定项目的名称空间,并设置
openshift.io/node-selector:“

对于此项目中的每个工作负载,然后在每个部署或deploymentconfig中根据需要设置所需的节点。这会为你解决问题


也许,如果这不是一个一次性的案例,请查看其他调度功能,例如此特定项目中的或

,您希望所有工作负载都落在此gpu节点上还是仅此特定部署上?仅gpu上的一个部署和cpu节点上的其他部署是否可以将master-config.yml的格式化yaml发布到“admissionConfig.pluginConfig.PodNodeConstraints”部分,以及您的部署配置。我还不确定,但看起来像是打字错误。我知道clusterDefaultNodeSelector字段,但不知道defaultNodeSelector。这里以及文档中都提到了defaultNodeSelector。我添加了主配置。deploymentconfig是一个普通的配置,里面有nodeselector。如果我们有很多项目的话,这种方法会很方便:/I查看了污染和容忍。Ii确实适用于deploymentconfigs,但不可能为buildconfigs分配ToLeaions:/是的,正如我所说,如果您有许多项目需要混合使用gpu节点和cpu节点,这将非常方便。在这种特殊情况下,因为使用gpu的工作负载似乎很稀疏,对吗?那么,在所需部署中对这些节点使用关联性可能是最佳选择