我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。 我们上小节介绍了Node亲和性(Affinity)和反亲和性(Anti-affinity)本质上还是属于Node和Pod的之间的调度...
在Kubernetes(K8s)中,为了更好地控制 Pod 在集群中的调度,K8s 提供了亲和性(Affinity)、反亲和性(Anti-Affinity)、污点(Taints)和容忍(Tolerations)机制。这些机制可以帮助我们合理安排 Pod 运行的节点,优化资源利用率,提高系统稳定性。 2. 亲和性(Affinity)和反亲和性(Anti-Affinity) 2.1 亲和性(Node Affinity) ...
Pod的亲和性和反亲和性(Affinity/Anti-Affinity) 自定义调度器 1、简介 Kubernetes的调度器在大多数情况下能过运行的很好,例如:它能够将Pod调度到有充足资源的Node上;它能够将一组Pod(ReplicaSet, StatefulSet,等)均匀的调度到不同的Node上;它尽力平衡各个节点的资源使用率等。 但有些时候您会想控制您的Pod如何调...
通过上面的例子我们可以感受到nodeSelector的方式比较直观,但是还够灵活,控制粒度偏大,下面我们再看另外一种更加灵活的方式:nodeAffinity。 nodeAffinity nodeAffinity就是节点亲和性,相对应的是Anti-Affinity,就是反亲和性,这种方法比上面的nodeSelector更加灵活,它可以进行一些简单的逻辑组合了,不只是简单的相等匹配。
浅聊Affinity 在Kubernetes 中, Affinity 是指用于控制 Pod 调度的策略,包括亲和性(Affinity)和反亲和性(Anti-Affinity)2种。 亲和性(Affinity)包括 NodeAffinity 和 PodAffinity 2种。 反亲和性(Anti-Affinity)包括 NodeAntiAffinity 和 PodAntiAffinity 2种。
Affinity主要分为三类: nodeAffinity(node亲和性):以node为目标,解决pod可以调度到哪些node的问题。 podAffinity(pod亲和性):以pod为目标,解决pod可以和哪些以存在的pod部署在同一个拓扑域中的问题。 podAntiAffinity(pod反亲和性):以pod为目标,解决pod不能和哪些已存在pod部署在同一个拓扑域中的问题。
二、Pod的亲和性(Pod Affinity)与反亲和性(Pod Anti-Affinity) Pod的亲和性和反亲和性允许你根据Pod的标签和拓扑关系来定义调度规则。亲和性规则使Pod更倾向于运行在具有相同或相似标签的Pod所在的Node上,而反亲和性规则则使Pod尽量避免运行在具有相同或相似标签的Pod所在的Node上。 Pod亲和性:Pod亲和性规则可以帮助...
二、nodeAffinity节点亲和性 1. 给节点打上标签 [root@master ~]# kubectl label nodes master k8s=master 查看三个节点的标签,分别拥有k8s=master,k8s=node1,k8s=node2标签 2.编辑资源清单设置节点亲和性 测试前把我们资源都删除掉 [root@master ~]# kubectl delete pod,svc,deploy --all ...
Affinity翻译成中文是“亲和性”,它对应的是Anti-Affinity,我们翻译成“互斥”。这两个词比较形象,可以把 pod 选择 node 的过程类比成磁铁的吸引和互斥,不同的是除了简单的正负极之外,pod 和 node 的吸引和互斥是可以灵活配置的。 Affinity的优点 匹配有更多的逻辑组合,不只是字符串的完全相等 ...
nodeSelector 提供了一个非常简单的方式,将 Pod 调度限定到包含特定标签的节点上。亲和性与反亲和性(affinity / anti-affinity)特性则极大地扩展了限定的表达方式。主要的增强点在于: 表达方式更加有效(不仅仅是多个精确匹配表达式的“和”关系)可以标识该规则为“soft” / “preference” (软性的、偏好的)而不是...