
什么是Node Selector
Node Selector是指定Pod分配到指定Node上最简单的方法,通过使用Pod中的nodeSelecotr属性来实现。
名词解释
标签是附加到主机上的键值对,旨在指定主机的标识属性。
Selector是标签选择器。客户端/用户可以通过标签选择器识别一组主机。
Match: 表达式是主机被匹配需满足的标签约束。 当一个标签选择器下有多个标签约束时,主机必须满足所有约束才能被匹配,尽管它也可能具有其他标签。空标签选择器(即无标签约束的选择器)将选择所有主机。在主机选择器的标签约束列表,有效的运算符包括 In, Not In, Exists 和 Not Exists。在 In 和 Not In 的情况下,设置的值必须是非空的。目前可支持基于相等性和基于集合类型的标签约束,两种类型的解释说明及示例请见后续。
使用说明
TDC在部署实例-参数配置这一步时,提供了Node Selector主机调度的功能。
您有两种配置方式,快速配置和高级配置。
如何进行快速配置
快速配置是直接选择需要调度的主机。
系统会把可选择主机名称列出,您可以直接选择主机,也可以通过筛选标签选择主机。

如何进行高级配置
在高级配置模式下,可添加一个或多个Selector,组件将被部署在可被任意一项Selector匹配的主机上。
高级配置是根据您选择的条件,筛选出符合条件的主机。

基于相等性的标签约束
基于相等性或不相等的标签约束允许按标签键和值进行过滤。 可接受的运算符有 '='、'==' 和 '!=' 三种。 前两个表示 '相等'(并且只是同义词),而后者表示 '不相等'。 例如:
Match: environment = production Match: tier != frontend复制
前者选择所有键名等于 'environment'、值等于 'production’的标签。 后者选择所有键名等于 'tier'、值不同于 'frontend’的标签以及所有未带有 'tier' 键的标签。
基于集合的标签约束
基于集合的标签约束允许通过一组值来过滤键。支持三种操作符:in, notin and exists (只可以用在键标识符上)。例如:
Match: environment in (production, qa) Match: tier notin (frontend, backend) Match: partition Match: !partition复制
第一个示例选择了所有键等于 'environment'、 并且值等于 'production' 或 'qa' 的标签。
第二个示例选择了所有键等于 'tier' 、并且值不等于 'frontend' 或者 'backend' 的标签,以及所有无 'tier' 键的标签。
第三个示例选择了所有包含了 'partition' 的标签,但没有校验它的值。
第四个示例选择了所有未包含 'partition' 的标签,也没有校验它的值。
基于集合的标签约束是基于相等性标签约束的一般形式,因为 'environment = production' 等同于 'environment in(production)','!=' 和 'not in' 也是类似的。
当集群中不存在NodeSelector指定的Node,即使集群中还有其他可供使用的Node,这个Pod也不会被成功调度。 |