您可以使用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
# ...