通过上面的例子我们可以感受到nodeSelector的方式比较直观,但是还够灵活,控制粒度偏大,下面我们再看另外一种更加灵活的方式:nodeAffinity。 nodeAffinity nodeAffinity就是节点亲和性,相对应的是Anti-Affinity,就是反亲和性,这种方法比上面的nodeSelector更加灵活,它可以进行一些简单的逻辑组合了,不只是简单的相等匹配。
https://v1-21.docs.kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/ 这种写法可以理解为先按照requiredDuringSchedulingIgnoredDuringExecution和preferredDuringSchedulingIgnoredDuringExecution两种条件先进行了区分,然后再按照node和pod进行区分。 所以一共四种写法。 请注意:这四种写法是固定格式,并不...
如果不覆盖默认的单个权重1,则对荚和节点的所有关联设置的权重都是相同的。
如果您不覆盖默认的单个权重1,则pod和节点的所有亲和度设置的权重都是相同的。在执行期间,节点上的亲...
在Kubernetes 中,podAffinity和podAntiAffinity权重是相互比较的吗?还是独立?podAffinity和呢nodeAffinity?会podAntiAffinity超过podAffinity下面例子中的吗?如果nodeAffinity也添加到混合物中会怎样。affinity: podAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 50 podAffinityTerm: labelSelector: ...
1.2 NodeAffinity节点亲和性 PreferredDuringSchedulingIgnoredDuringExecution实现方式 RequiredDuringSchedulingIgnoredDuringExecution实现方式 1.2 PodAffinity节点亲和性 podAffinity亲和性 podAntiAffinity亲和性 1.3 NodeTaintTolerations NodeTaint 2. 调度器的过程
这里指定“同一位置” 是通过 topologyKey 来定义的,topologyKey 对应的值是 node 上的一个标签名称,比如各别节点zone=A标签,各别节点有zone=B标签,pod affinity topologyKey定义为zone,那么调度pod的时候就会围绕着A拓扑,B拓扑来调度,而相同拓扑下的node就为“同一位置”。
podAntiAffinity不能与nodeAffinity一起使用 我在k8s上进行了一系列部署,部署了相同的服务器二进制文件,但在规格上有所不同,如内存限制等。每个部署仅运行1个pod,并且希望为这些部署安排一个pod,以便每个虚拟机仅安排一个pod。 由于某些部署需要比其他部署更大的内存,因此我们将 nodeAffinity 和 podAntiAffinity 结合...
这里指定“同一位置” 是通过 topologyKey 来定义的,topologyKey 对应的值是 node 上的一个标签名称,比如各别节点zone=A标签,各别节点有zone=B标签,pod affinity topologyKey定义为zone,那么调度pod的时候就会围绕着A拓扑,B拓扑来调度,而相同拓扑下的node就为“同一位置”。
k8s集群中,有pod出现了 Affinity ,使用 kubectl describe pod 命令,发现了报错2 node(s) didn't match Pod's node affinity. 复制代码 Warning FailedScheduling<unknown>default-scheduler0/2nodesareavailable:1node(s) didn't match node selector, 1 node(s) had taints that the pod didn't tolerate. ...