调度策略 匹配标签 操作符 拓扑域支持 调度目标 nodeAffinity 主机 In, NotIn, Exists,DoesNotExist, Gt, Lt 否 ...
比如一组pod需要最终调度到拥有SSD/GPU的硬盘的机器上,或者将两个不同的服务(服务间直接通信比较频繁)的pod 调度到同样的节点上 (比如gitlab.这里就需要 Kubernetes里面的亲和性来解决...,亲和性分为2类: nodeAffinity 和 podAffinity. nodeSelector 最简单的推荐形式是使用nodeSelector 来满足我们的需求. label 是 kubernetes...要求的 pod 反亲和,topologyKey 不允许为空。...更多文档请参考官方文档 结束 k8s 提供了亲和反亲和性给我们的调度提供了更细粒度的控制....这里需要注意的是pod间亲和和反亲和确实带来了不少便利,但是pod间的亲和和反亲和需要大量的处理, 这可能会显著减慢大规模集群中的调度。
亲和与反亲和 Affinity and anti-affinity nodeSelector的调度方式略显简单,通过亲和和反亲和配置,能够为调度提供更灵活的策略,主要有以下几点增强: 更多的表达式支持,...Pod间的亲和性与反亲和性 inter-pod affinity/anti-affinity 这个特性是Kubernetes 1.4后增加的,允许用户通过已经运行的Pod上的标签来决定调度策略,用文字描述就是...原则上topologyKey可以是节点的合法标签,但是有一些约束: 对于亲和性以及RequiredDuringScheduling的反亲和性,topologyKey需要指定 对于RequiredDuringScheduling...的反亲和性,LimitPodHardAntiAffinityTopology的准入控制限制topologyKey为kubernetes.io/hostname,可以通过修改或者disable解除该约束...对于PreferredDuringScheduling的反亲和性,空的topologyKey表示kubernetes.io/hostname, failure-domain.beta.kubernetes.io
亲和性与反亲和性(affinity / anti-affinity)特性则极大地扩展了限定的表达方式。...Pod亲和性与反亲和性 Pod之间的亲和性与反亲和性(inter-pod affinity and anti-affinity)可以基于已经运行在节点上的 Pod 的标签(而不是节点的标签)来限定 Pod...所有与 requiredDuringSchedulingIgnoredDuringExecution 亲和性和反亲和性关联的 matchExpressions 必须被满足,Pod 才能被调度到目标节点。...更多实用的例子 Pod 亲和性与反亲和性结合高级别控制器(例如 ReplicaSet、StatefulSet、Deployment 等)一起使用时,可以非常实用。...参考 ZooKeeper tutorial 了解如何使用相同的方式为 StatefulSet 配置反亲和性以实现高可用。
在 Kubernetes 中,亲和性和反亲和性可以用来控制 Pod 如何调度到节点上,而污点和容忍则可以用来控制节点是否接受 Pod。...在本文中,我们将介绍 Kubernetes 中亲和性、反亲和性、污点和容忍的概念,并提供一些示例来帮助读者更好地理解这些概念。亲和性和反亲和性亲和性和反亲和性可以用来控制 Pod 如何调度到节点上。...亲和性表示 Pod 要求与特定的节点调度在一起,反亲和性表示 Pod 不希望与特定的节点调度在一起。...反亲和性与亲和性的实现类似,只是条件相反。...在使用亲和性、反亲和性、污点和容忍时需要注意以下几点:亲和性和反亲和性只在节点之间的调度时生效,而不会影响 Pod 内容器之间的调度。
早上发现应用的某一个功能有一半的请求失败,排查之后发现,原来容器服务中节点未设置反亲和性,导致 Pod 部署到同一个节点中,影响 API 网关请求后端服务。...解决问题:设置反亲和性解决问题的思路是让 Pod 不能调度在同一台服务器上,需要打散调度到所有节点中。...在 Kubernetes 中,如果希望让 Deployment 的 Pods 分布在不同的节点上,可以使用几种策略,主要包括:1.亲和性(Affinity)和反亲和性(Anti-Affinity)规则:...使用 Pod 反亲和性规则可以指定 Kubernetes 调度器不要将属于同一 Deployment 的 Pods 调度到同一节点上。...例如,以下是一个 Deployment 配置的示例,它使用了 Pod 反亲和性来确保 Pods 分散到不同的节点上:apiVersion: apps/v1kind: Deploymentmetadata
Kubernetes K8S之Node节点亲和性与反亲和性以及Pod亲和性与反亲和性详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master...而亲和性/反亲和性极大地扩展了可表达的约束类型。关键的增强是: 1、亲和性/反亲和性语言更具表达性。...亲和特性包括两种类型:node节点亲和性/反亲和性 和 pod亲和性/反亲和性。pod亲和性/反亲和性约束针对的是pod标签而不是节点标签。...pod亲和性与反亲和性示例 为了更好的演示Pod亲和性与反亲和性,本次示例我们会将k8s-master节点也加入进来进行演示。...为后续的Pod亲和性与反亲和性测验做基础。
文章目录 简介 nodeAffinity 节点亲和性 podAffinity 亲和性调度实例 互斥性调度实例 简介 前面的 nodeSelector 调度略显生硬,如果场景是:某个 Pod 最好调度到磁盘大的节点上...---- nodeAffinity 节点亲和性 目前有两种亲和性表达: RequiredDuringScheduleIgnoreDuringExecution:调度时要求,执行时忽略。...内置了以下一些常用的默认拓扑域: kubernetes.io/hostname topology.kubernetes.io/region topology.kubernetes.io/zone pod 亲和性的具体做法是通过在...---- 亲和性调度实例 apiVersion: v1 metadate: name: pod-flag labels: security: "s1" app: "nginx"
硬策略: 必须符合要求,不然Pod的状态就一直是Pending requiredDuringSchedulingIgnoredDuringExecution 软...
Gt:label 的值大于某个值 Lt:label 的值小于某个值 Exists:某个 label 存在 DoesNotExist:某个 label 不存在 二、节点与Pod硬亲和性...三、节点与Pod软亲和性 preferredDuringSchedulingIgnoredDuringExecution 为了解决上述因为硬亲和性创建Pod不成功的问题,我们通过设置软亲和性策略后再次创建一个...requiredDuringSchedulingIgnoredDuringExecution:硬策略 podAffinity: pod之间亲和,pod在同一网段 podAntiAffinity:pod之间反亲和...,pod在不同网段 4.1、pod亲和性 vim test-pod.yaml apiVersion: v1 kind: Pod metadata: name: pod-1 labels:...values: - pod-1 topologyKey: kubernetes.io/hostname 我们来看一下结果: 五、关于亲和性总结
,这是一篇笔记性质的博客 kubernetes默认调度器的调度过程: 调度过程如下: 预选(Predicates) 优选(Priorities) 选定(Select) 亲和性一览 这里将亲和性先分类,便于理解...image.png 节点亲和性和pod亲和性的区别 举个例子,假设给小明分配班级(小明是pod,班级是节点) 节点亲和性:直接告诉小明,你去一年级 pod亲和性:从小朋友中找出和小明同年的,找到了小张...,发现小张是一年级的,于是让小明去一年级 节点亲和性:硬亲和性 requiredDuringSchedulinglgnoredDuringExecution:用于定义节点硬亲和性 nodeSelectorTerm...,pod为Pending状态 在预选阶段,节点硬亲和性被用于预选策略MatchNodeSelector 节点亲和性:软亲和性 特点:条件不满足时也能被调度 示例: apiVersion: apps/...requiredDuringSchedulingIgnoredDuringExecution 软亲和:preferredDuringSchedulingIgnoredDuringExecution Pod反亲和
一、节点调度 在开始 kiali 亲和性调度之前,先演示一个简单的例子介绍 pod 选择调度到指定 node: 节点打标 使用命令查看当前所有 k8s 节点: [root@k8s-master ~]# ...;如今可以网上挂号了,病人也可以挑选中意的医生,这样就有了亲和性,说明社会进步了。...节点亲和性调度(NodeAffinity) 下面的理论可以对照上面的例子。 节点亲和性,也就是 NodeAffinity,用来控制 pod 部署或者不能部署在哪台机器上。...节点亲和性软硬策略的语法分别介绍如下。... containers: - name: redis-server image: redis:3.2-alpine 创建了一个Deployment,副本数为3,指定了反亲和规则如上所示
硬策略: requiredDuringSchedulingIgnoredDuringExecution 软策略: preferredDuringScheduli...
In:label的值在某个列表中 NotIn:label的值不在某个列表中 Gt:label的值大于某个值 Lt:label的值小于某个值 Exists:某个l...
pod反亲和性 节点亲和性功能类似于 nodeSelector 字段,但它的选择表达能力更强,有各种各样的规则,还有软规则。...甚至还可以有反亲和性,拒绝/排斥部署到哪些节点; nodeAffinity--节点亲和性 节点亲和性(nodeAffinity)分成两种: requiredDuringSchedulingIgnoredDuringExecution...pod间的亲和反亲和性 前面的节点亲和性是通过pod和节点之间的标签进行匹配,选择的; pod的亲和性和反亲和性调度指:通过已在运行中的pod标签进行选择调度部署的节点; pod的亲和性调度:一个典型的使用场景就是在集群环境是有多数据中心的...,那一个服务部署已经部署到广东了,那我跟他相关的需要大量通信的其他服务也尽量部署到广东,降低彼此间的通信延迟; pod的反亲和性调度:一个典型的使用场景就是我的服务要尽可能分散到各个数据中心、区域,比如广东...PS:Pod 间亲和性和反亲和性都需要一定的计算量,因此会在大规模集群中显著降低调度速度(比如上百个节点上千上万的pod),影响性能; 这块我也用的不多,就写到这里; taint + tolerations
后面几节我们将介绍Pod的亲和性和反亲和性。 Pod的亲和性和反亲和性通过Pod的标签来识别,而不是通过Node的标签。...比如标题中“利用Pod反亲和性控制一个Node上只能有一个Pod”可以翻译成:只能将Pod调度到不存在该Pod标签的Node上。...containers: - name: nginx-container image: nginx ports: - containerPort: 80 反亲和性...这次亲和性(affinity)我们选择Pod反亲和性(podAntiAffinity)。...可以看到,因为亲和性问题,没有Node可以被调度了。
/proc/pid/task //文件夹名即TID(3)ps -To 'pid,lwp,psr,cmd' -p PID 基于上述背景之下,我们来学习一下什么是CPU亲和力 CPU亲和性...因为程序的作者比调度器更了解程序,所以我们可以手动地为其分配CPU核,而不会过多地占用CPU0,或是让我们关键进程和一堆别的进程挤在一起,所有设置CPU亲和性可以使某些程序提高性能。...taskset -p pid 举例:查看init进程(PID=1)的CPU亲和性 taskset -p 1 3) 改变已经运行进程的CPU亲和力...相关的API只有6个, 前2个是用来设置进程的CPU亲和性,需要注意的一点是,当这2个API的第一个参数pid为0时,表示使用调用进程的进程ID; 后4个是用来设置线程的CPU亲和性。...其实sched_setaffinity()也可以用来设置线程的CPU的亲和性,也就是taskset “-a”选项中提到的TID概念。
这次给大家介绍下k8s的亲和性调度:nodeSelector、nodeAffinity、podAffinity、Taints以及Tolerations用法。...这就需要用到 Kubernetes 里面的一个概念:亲和性,亲和性主要分为两类:nodeAffinity和podAffinity。...nodeAffinity nodeAffinity就是节点亲和性,相对应的是Anti-Affinity,就是反亲和性,这种方法比上面的nodeSelector更加灵活,它可以进行一些简单的逻辑组合了,不只是简单的相等匹配...192.168.1.172 with-pod-affinity 1/1 Running 0 8m 172.30.95.17 192.168.1.140 亲和性.../反亲和性调度策略比较如下: 调度策略 匹配标签 操作符 拓扑域支持 调度目标 nodeAffinity 主机 In, NotIn, Exists, DoesNotExist, Gt, Lt 否 指定主机
这就是Pod亲和性和反亲和性的作用。在本文中,我们将详细介绍Pod亲和性和反亲和性的概念、配置以及一些示例。什么是Pod亲和性和反亲和性?Pod亲和性和反亲和性是用于控制Pod运行位置的策略。...Pod可以配置为在一个节点或多个节点上运行,也可以配置为在没有满足其亲和性要求的节点上不运行。反亲和性定义了Pod应该避免运行的节点。它同样使用标签选择器来选择节点。...与Pod亲和性不同的是,反亲和性会指示Pod不应该运行在某些节点上。反亲和性可以用来避免节点过载或避免将同一Pod调度到同一节点上。如何配置Pod亲和性和反亲和性?...Pod亲和性和反亲和性可以通过Kubernetes的调度器来配置。这需要在PodSpec中设置affinity字段。该字段包含了两个子字段:nodeAffinity和podAffinity。...以下是一个Pod配置文件的示例,其中包含了亲和性和反亲和性的定义:apiVersion: v1kind: Podmetadata: name: example-podspec: affinity:
基于上述原因,作者对redis做了CPU亲和性的系统支持,并合入了upstream。
领取专属 10元无门槛券
手把手带您无忧上云