如何在kubernetes中指定pod到节点的关联性
如何将特定的pod配置为在多节点kubernetes集群上运行,以便将pod的容器限制为节点的子集 例如,假设有A、B、C三个节点运行mu-kubernetes群集如何在kubernetes中指定pod到节点的关联性,kubernetes,Kubernetes,如何将特定的pod配置为在多节点kubernetes集群上运行,以便将pod的容器限制为节点的子集 例如,假设有A、B、C三个节点运行mu-kubernetes群集 如何限制吊舱仅在a&B上运行其容器,而不在C上运行 您可以将标签添加到要在其上运行pod的节点,并将nodeSelector添加到pod配置中。此处描述了该过程: 所以基本上你想 kubectl label nodes A node_type=foo kubectl label nodes B node_type=foo 您希望
如何限制吊舱仅在a&B上运行其容器,而不在C上运行 您可以将标签添加到要在其上运行pod的节点,并将nodeSelector添加到pod配置中。此处描述了该过程: 所以基本上你想
kubectl label nodes A node_type=foo
kubectl label nodes B node_type=foo
您希望在pod规范中包含此节点选择器:
nodeSelector:
node_type: foo
首先,您需要向节点添加标签。您可以参考Nebril关于如何添加标签的回答 然后,我建议您使用节点关联功能将POD约束到具有特定标签的节点。这里有一个例子
apiVersion: v1
kind: Pod
metadata:
name: with-node-affinity
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node_type
operator: In
values:
- foo
containers:
- name: with-node-affinity
image: gcr.io/google_containers/pause:2.0
与节点选择器相比,关联/反关联功能大大扩展了您可以表达的约束类型
有关节点亲缘关系的更多详细信息,请参阅以下链接:我无法对以前的答复发表评论,但我对已完成的答复投了赞成票。 节点选择器没有严格执行,依赖它可能会导致一些痛苦,包括Master无法处理来自Master上预定POD的请求和IOs。在给出答案时,它可能仍然是唯一的选择,但在以后的版本中并非如此 一定要使用节点附件或节点附件来执行所需的During Scheduling IgnoredDuringExecution或首选的During Scheduling IgnoredDuringExecution
有关用于调度的更具表现力的过滤器,请阅读:I我正在寻找一种方法来自动标记要添加到池中的节点,或者在matchExpressions中使用节点
名称
。您能否澄清自动标记的含义?还有,这与原来的问题有关吗?也许发布一个单独的问题可能会有所帮助。