This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.8.2. 使用节点选择器控制 pod 放置
您可以使用节点上的 pod 和标签上的节点选择器来控制 pod 的调度位置。使用节点选择器时,OpenShift Container Platform 会将 pod 调度到包含匹配标签的节点。
您可为节点、机器集或机器配置添加标签。将标签添加到机器集可确保节点或机器停机时,新节点具有标签。如果节点或机器停机,添加到节点或机器配置的标签不会保留。
					要将节点选择器添加到现有 pod 中,将节点选择器添加到该 pod 的控制对象中,如 ReplicaSet 对象、DaemonSet 对象、StatefulSet 对象、Deployment 对象或 DeploymentConfig 对象。任何属于该控制对象的现有 pod 都会在具有匹配标签的节点上重新创建。如果要创建新 pod,可以将节点选择器直接添加到 Pod 规格中。
				
您不能直接将节点选择器添加到现有调度的 pod 中。
先决条件
						要将节点选择器添加到现有 pod 中,请确定该 pod 的控制对象。例如, router-default-66d5cf9464-m2g75 pod 由 router-default-66d5cf9464 副本集控制:
					
					Web 控制台在 pod YAML 的 ownerReferences 下列出控制对象:
				
流程
- 通过使用机器集或直接编辑节点,为节点添加标签: - 在创建节点时,使用 - MachineSet对象向由机器集管理的节点添加标签:- 运行以下命令,将标签添加到 - MachineSet对象中:- oc patch MachineSet <name> --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"<key>"="<value>","<key>"="<value>"}}]' -n openshift-machine-api- $ oc patch MachineSet <name> --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"<key>"="<value>","<key>"="<value>"}}]' -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如: - oc patch MachineSet abc612-msrtw-worker-us-east-1c --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"type":"user-node","region":"east"}}]' -n openshift-machine-api- $ oc patch MachineSet abc612-msrtw-worker-us-east-1c --type='json' -p='[{"op":"add","path":"/spec/template/spec/metadata/labels", "value":{"type":"user-node","region":"east"}}]' -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 提示- 您还可以应用以下 YAML 将标签添加到机器集中: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - oc edit命令验证标签是否已添加到- MachineSet对象中:- 例如: - oc edit MachineSet abc612-msrtw-worker-us-east-1c -n openshift-machine-api - $ oc edit MachineSet abc612-msrtw-worker-us-east-1c -n openshift-machine-api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - MachineSet对象示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 直接向节点添加标签: - 为节点编辑 - Node对象:- oc label nodes <name> <key>=<value> - $ oc label nodes <name> <key>=<value>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如,若要为以下节点添加标签: - oc label nodes ip-10-0-142-25.ec2.internal type=user-node region=east - $ oc label nodes ip-10-0-142-25.ec2.internal type=user-node region=east- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 提示- 您还可以应用以下 YAML 将标签添加到节点: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 验证标签是否已添加到节点: - oc get nodes -l type=user-node,region=east - $ oc get nodes -l type=user-node,region=east- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME STATUS ROLES AGE VERSION ip-10-0-142-25.ec2.internal Ready worker 17m v1.18.3+002a51f - NAME STATUS ROLES AGE VERSION ip-10-0-142-25.ec2.internal Ready worker 17m v1.18.3+002a51f- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
 
- 将匹配的节点选择器添加到 pod: - 要将节点选择器添加到现有和未来的 pod,请向 pod 的控制对象添加节点选择器: - 带有标签的 - ReplicaSet对象示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 添加节点选择器。
 
- 要将节点选择器添加到一个特定的新 pod,直接将选择器添加到 - Pod对象中:- 使用节点选择器的 - Pod对象示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 您不能直接将节点选择器添加到现有调度的 pod 中。