podAntiAffinity(pod 反亲和性):该 Pod 不喜欢和某些 Pod 调度在一起 上面三种亲和性调度,无论是哪一种,都要依赖标签才能起作用,只是不同的亲和性调度方法,亲和性调度器匹配标签的对象不同 node 亲和性:检查的是亲和性调度器与 node 标签的匹配 pod (反)亲和性:检查的是亲和性调度器与 pod 标签的匹配 4....
反亲和性调度:就好像2个Pod是赌气的2个孩子,互相对着干,一个往东,另一随便去哪个方向就是不往东,他们不会去到同一个地方。 4.1、记住这3种调度关系 亲和性调度 和 反亲和性调度的关系就3种: node亲和调度:硬亲和、软亲和 pod亲和调度:硬亲和、软亲和 pod反亲和调度:硬亲和、软亲和 4.2、记住这2种亲和表...
利用K8S 的反亲和性构建高可用应用 K8S 支持多副本部署,但不代表应用的高可用,因为多个副本可能部署到同一个节点上。 早上发现应用的某一个功能有一半的请求失败,排查之后发现,原来容器服务中节点未设置反亲和性,导致 Pod 部署到同一个节点中,影响API 网关请求后端服务。 架构图 先review 以下架构图 Web 应用:Vue ...
在守护进程集(DaemonSet)中讲到使用nodeSelector选择Pod要部署的节点,其实Kubernetes还支持更精细、更灵活的调度机制,那就是亲和(affinity)与反亲和(anti-affinity)调度。Kubernetes支持节点和Pod两个层级的亲和与反亲和。通过配置亲和与反亲和规则,可以允许您指定
可以使用 kubectl label node 命令来为节点添加或删除标签。 总之,亲和性、反亲和性、污点和容忍是 Kubernetes 中非常重要的概念,可以用来控制 Pod 的调度和部署,提高系统的可用性和性能。在实际应用中,需要根据具体的业务需求来合理设置这些参数,以达到最优的效果。
对于硬性反亲和,topoloygKey只能是kubernetes.io/hostname,除非禁止LimitPodHardAntiAffinityTopology允入控制器或者修改其实现。 对于软件反亲和,允许topoloygKey为空,表示对节点拓扑没有限制。 以上情况外,topologyKey可以是任何合法标签。 示例1:用反亲和特性实现pod位置协商 ...
Kubernetes支持节点和Pod两个层级的亲和(affinity)与反亲和(anti-affinity)调度。通过配置亲和与反亲和规则,可以允许您指定硬性限制或者偏好,例如将前台Pod和后台Pod部署在一起、某类应用部署到某些特定的节点、不同应用部署到不同的节点等等。Pod模板中可以通过nodeS
所谓的反亲和,其实就是满足条件的话,就离这个pod远远的,从此不见面。与亲和正好相反 1. 1.2、属性解析 kubectl explain pod.spec.affinity.podAntiAffinity requiredDuringSchedulingIgnoredDuringExecution -- 硬亲和性: labelSelector 选择跟那组Pod亲和,前提得知道如何判断 ...
亲和和反亲和,包含两种类型:“节点亲和”和“pod间亲和/反亲和” 为何要做node亲和 我们在日常工作中经常会遇到要在k8s环境下维护多条产品线,甚至在微服务架构中,又有前端、中台、底层之分,如何将关联密切的服务划分到一组服务器上,保持架构的相对独立,避免交叉部署带来的管理和故障诊断难题,就用到了node亲和;所谓...
Pod间亲和 & 反亲和 其他需要注意的点: pod调度到node(nodeSelector) AI检测代码解析 apiVersion: v1 kind: Pod metadata: name: nginx labels: env: test spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent nodeSelector: # 匹配节点的label,多个label之间为‘与’关系 ...