Node affinity 在概念上类似于nodeSelector,它允许您根据节点标签来限制Pod可以调度到哪些节点上。有两种类型的节点亲和性: requiredDuringSchedulingIgnoredDuringExecution:除非满足规则,否则调度程序无法将Pod调度到节点上。这类似于nodeSelector,但具有更具表达性的语法。 preferredDuringSchedulingIgnoredDuringExecution:调度...
beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=controlplane,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=node01 Ready<none>12h v1.29.0
现在我们来编写一个简单的 Deployment,指定 Pod 的节点亲和性。 # 创建一个名为 "nginx-deployment.yaml" 的文件apiVersion:apps/v1kind:Deploymentmetadata:name:nginx-deploymentspec:replicas:3selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:affinity:nodeAffinity:requiredDuringSchedulingIgnored...
通过上面的例子我们可以感受到nodeSelector的方式比较直观,但是还够灵活,控制粒度偏大,下面我们再看另外一种更加灵活的方式:nodeAffinity。 nodeAffinity nodeAffinity就是节点亲和性,相对应的是Anti-Affinity,就是反亲和性,这种方法比上面的nodeSelector更加灵活,它可以进行一些简单的逻辑组合了,不只是简单的相等匹配。
2.1 亲和性(Node Affinity) 亲和性允许指定 Pod 期望调度到某些特定的节点,通常基于节点的标签(Labels)。Kubernetes 提供了两种亲和性规则: requiredDuringSchedulingIgnoredDuringExecution(硬性规则):Pod必须调度到符合条件的节点,否则不会被调度。 preferredDuringSchedulingIgnoredDuringExecution(软性规则):Pod优先调度到符合...
NodeAffinity节点亲和性,是Pod上定义的一种属性,使Pod能够按我们的要求调度到某个Node上,而Taints则恰恰相反,它可以让Node拒绝运行Pod,甚至驱逐Pod。 Taints(污点)是Node的一个属性,设置了Taints(污点)后,因为有了污点,所以Kubernetes是不会将Pod调度到这个Node上的, 于是Kubernetes就给Pod设置了个属性Tolerations(容忍...
Kubernetes提供了很多Controller资源来管理、调度Pod,包括Replication Controller、ReplicaSet、Deployments、StatefulSet、DaemonSet等等。本文介绍这些控制器的功能和用法。控制器是Kubernetes中的一种资源,用来方便管理Pod。可以把控制器想象成进程管理器,负责维护进程的状态。进程掉了负责拉起,需要更多进程了负责增加进程,可以监...
1.3 NodeTaintTolerations 对于Node affinity,无论是强制约束(hard)或偏好(preference)方式,都是调度pod到预期节点上,而Taints恰好与之相反,如果一个节点标记为Taints,除非 Pod也被标识为可以耐受污点节点,否则该Taints节点不会被调度pod。Taints与tolerations当前处于beta阶段, Taints节点应用场景比如用户希望把Kubernetes Ma...
Kubernetes affinity特性 1 简介 1.1 Node affinity Kubernetes node affinity特性与node selector特性相似,可以要求Kubernetes Scheduler将Pod调度到定义了某些labels的node上运行 1.1.1 示意图 image.png 1.2 Pod affinity Kubernetes Pod affinity可以要求Kubernetes Scheduler将Pod调度到运行了某些定义了特点labels的pod的nod...
之所以如此,是因为使用了节点软亲和性的预选方式,所有节点均能够通过调度器上MatchNodeSelector预选策略的筛选,因此,可用节点取决于其他预选策略的筛选结果。在第二阶段的优选过程中,除了NodeAffinityPriority优选函数之外,还有其他几个优选函数参与优先级评估,尤其是SelectorSpreadPriority,它会将同一个ReplicaSet控制器管控...