虽然可以满足我们一般的调度需求,但是不够灵活,所以Kubernetes给我们提供了另外2个资源亲和性(Affinity)和反亲和性(Anti-affinity) 在Kubernetes 中,亲和性(Affinity)和反亲和性(Anti-affinity)是高级的调度特性,它们允许你设置规则,这些规则可以在调度 Pod 时,详细地控制 Pod 应该运行在哪些节点上。这些规则
$ kubectl explain pod.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution KIND: ...
2️⃣ NodeAffinity(节点亲和性) 📌 目标 根据用户在 Pod 中定义的nodeAffinity条件打分,优先调度到匹配度高的节点。 🧠 用法示例 affinity:nodeAffinity:preferredDuringSchedulingIgnoredDuringExecution:-weight:100preference:matchExpressions:-key:zoneoperator:Invalues:-us-west1 节点zone=us-west1→ 得 100 ...
本次讨论的主题是亲和性在节点调度中的应用。介绍了硬亲和性和软亲和性两种规则,硬亲和性要求必须满足标签匹配,而软亲和性则尽量满足但允许在无法满足时进行调度。亲和性规则提供了比传统调度更多的灵活性,允许在调度时考虑节点标签,而反亲和性规则则用于避免调度到具有特定标签的节点。这些技术点适合对Kubernetes调度机...
这次给大家介绍下k8s的亲和性调度:nodeSelector、nodeAffinity、podAffinity、Taints以及Tolerations用法。 一般情况下我们部署的 POD 是通过集群自动调度选择某个节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 POD 的调度,比如我们内部的一些服务 gitlab 之类的也...
1.3 NodeTaintTolerations 对于Node affinity,无论是强制约束(hard)或偏好(preference)方式,都是调度pod到预期节点上,而Taints恰好与之相反,如果一个节点标记为Taints,除非 Pod也被标识为可以耐受污点节点,否则该Taints节点不会被调度pod。Taints与tolerations当前处于beta阶段, Taints节点应用场景比如用户希望把Kubernetes Ma...
Node Selector和Node Affinity是Kubernetes提供的两种调度策略,它们可以帮助管理员更精确地控制Pod的调度。一、Node SelectorNode Selector是一种标签选择器,用于将Pod调度到具有特定标签的节点上。管理员可以为节点添加标签,并使用Node Selector将Pod调度到具有所需标签的节点上。例如,管理员可以为具有GPU的节点添加标签...
Node Affinity可以让指定应用调度到指定的节点,这有利于应用的稳定性,减少重要业务和不重要业务之间相互抢占资源的可能,同时也可以降低不重要业务对重要业务的影响,另一方面,也能够进行多租户之间的隔离。根据租户需求为租户提供特定的运行环境。 2.1 NodeAffinity配置要点 ...
节点亲和 Node affinity: 硬亲和表示条件必须满足条件requiredDuringSchedulingIgnoredDuringExecution表示pod必须部署到满足条件的节点上,如果没有满足条件的节点,就不停重试。其中IgnoreDuringExecution表示pod部署之后运行的时候,如果节点标签发生了变化,不再满足pod指定的条件,pod也会继续运行。 软亲和表示尽量满足条件preferred...
首先,我们可以将学习和实现 Node Affinity 的过程划分为以下几个步骤: 接下来,我们逐步了解每一个步骤的具体操作。 步骤详解 步骤1: 理解节点亲和性 >节点亲和性是一种用于控制 Pod 在何处调度的特性。通过使用节点标签,Kubernetes 可以将 Pod 放置在符合特定条件的节点上。这对于负载均衡、资源分配和故障恢复等场景...