$ oc describe pod router-default-66d5cf9464-7pwkc
节点选择器指定键值对的映射。规则是使用节点上的自定义标签和Pod中指定的选择器定义的。
为了使Pod能够在节点上运行,Pod必须具有节点上作为标签的指示的键值对。
如果您在同一个Pod配置中使用节点亲和性和节点选择器,请参阅下面的重要注意事项。
您可以使用Pod上的节点选择器和节点上的标签来控制Pod的调度位置。使用节点选择器,Red Hat OpenShift Service on AWS 会将Pod调度到包含匹配标签的节点上。
您可以将标签添加到节点、计算机器集或机器配置。将标签添加到计算机器集可确保如果节点或机器宕机,新节点将具有该标签。如果节点或机器宕机,添加到节点或机器配置的标签将不会持久化。
要将节点选择器添加到现有Pod,请将节点选择器添加到该Pod的控制对象,例如ReplicaSet
对象、DaemonSet
对象、StatefulSet
对象、Deployment
对象或DeploymentConfig
对象。该控制对象下的任何现有Pod都将在具有匹配标签的节点上重新创建。如果您正在创建新的Pod,您可以直接将节点选择器添加到Pod规范中。如果Pod没有控制对象,则必须删除Pod,编辑Pod规范,然后重新创建Pod。
您不能直接将节点选择器添加到现有的已调度Pod。 |
要将节点选择器添加到现有Pod,请确定该Pod的控制对象。例如,router-default-66d5cf9464-m2g75
Pod由router-default-66d5cf9464
副本集控制。
$ oc describe pod router-default-66d5cf9464-7pwkc
kind: Pod
apiVersion: v1
metadata:
# ...
Name: router-default-66d5cf9464-7pwkc
Namespace: openshift-ingress
# ...
Controlled By: ReplicaSet/router-default-66d5cf9464
# ...
Web控制台在Pod YAML中的ownerReferences
下列出控制对象。
apiVersion: v1
kind: Pod
metadata:
name: router-default-66d5cf9464-7pwkc
# ...
ownerReferences:
- apiVersion: apps/v1
kind: ReplicaSet
name: router-default-66d5cf9464
uid: d81dd094-da26-11e9-a48a-128e7edf0312
controller: true
blockOwnerDeletion: true
# ...
将匹配的节点选择器添加到Pod
要将节点选择器添加到现有和将来的Pod,请将节点选择器添加到Pod的控制对象。
ReplicaSet
对象kind: ReplicaSet
apiVersion: apps/v1
metadata:
name: hello-node-6fbccf8d9
# ...
spec:
# ...
template:
metadata:
creationTimestamp: null
labels:
ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default
pod-template-hash: 66d5cf9464
spec:
nodeSelector:
kubernetes.io/os: linux
node-role.kubernetes.io/worker: ''
type: user-node (1)
# ...
1 | 添加节点选择器。 |
要将节点选择器添加到特定的新Pod,请直接将选择器添加到Pod
对象。
Pod
对象apiVersion: v1
kind: Pod
metadata:
name: hello-node-6fbccf8d9
# ...
spec:
nodeSelector:
region: east
type: user-node
# ...
您不能直接将节点选择器添加到现有的已调度Pod。 |