6.3.2. 设置项目范围的 Node Selector
要使用节点选择器创建单个项目,请在创建项目时使用 --node-selector
选项。例如,如果您有一个带有多个区域的 OpenShift Container Platform 拓扑,您可以使用节点选择器限制特定的 OpenShift Container Platform 项目,仅将 pod 部署到特定区域的节点。
以下命令创建一个名为 myproject
的新项目,它规定 pod 部署到标有 user-node
和 east
的节点上:
$ oc adm new-project myproject \ --node-selector='type=user-node,region=east'
运行此命令后,这便成为指定项目中包含的所有容器集的管理员设置节点选择器。
new-project
子命令分别可用于 oc adm
和 oc
,而集群管理员和 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=""
),则项目将无法具有管理员设置的节点选择器,即使已经设置了集群范围的默认值。这意味着,作为集群管理员,您可以设置默认值,将开发人员项目限制为节点的子集,并且仍然启用基础架构或其他项目来调度整个集群。