Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

6.3.2. 设置项目范围的 Node Selector

要使用节点选择器创建单个项目,请在创建项目时使用 --node-selector 选项。例如,如果您有一个带有多个区域的 OpenShift Container Platform 拓扑,您可以使用节点选择器限制特定的 OpenShift Container Platform 项目,仅将 pod 部署到特定区域的节点。

以下命令创建一个名为 myproject 的新项目,它规定 pod 部署到标有 user-nodeeast 的节点上:

$ oc adm new-project myproject \
    --node-selector='type=user-node,region=east'

运行此命令后,这便成为指定项目中包含的所有容器集的管理员设置节点选择器。

注意

new-project 子命令分别可用于 oc admoc,而集群管理员和 developer 命令则分别可用于使用节点选择器创建新项目,但仅可使用 oc adm 命令使用。在自调配项目时,new-project 子命令不可供项目开发人员使用。

使用 oc adm new-project 命令,为项目添加 注解 部分。您可以编辑项目,并更改 openshift.io/node-selector 值来覆盖默认值:

...
metadata:
  annotations:
    openshift.io/node-selector: type=user-node,region=east
...

您还可以使用以下命令覆盖现有项目命名空间的默认值:

# oc patch namespace myproject -p \
    '{"metadata":{"annotations":{"openshift.io/node-selector":"node-role.kubernetes.io/infra=true"}}}'

如果 openshift.io/node-selector 设置为空字符串(oc adm new-project --node-selector=""),则项目将无法具有管理员设置的节点选择器,即使已经设置了集群范围的默认值。这意味着,作为集群管理员,您可以设置默认值,将开发人员项目限制为节点的子集,并且仍然启用基础架构或其他项目来调度整个集群。