Pod Anti-Affinity(Pod反亲和性):指定一个 Pod 应该尽量避免被调度到与其他 Pod 具有特定标签的节点上。 示例: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - frontend topologyKey: kubernetes.io/hostname 1. 2. 3. 4...
浅聊Affinity 在Kubernetes 中, Affinity 是指用于控制 Pod 调度的策略,包括亲和性(Affinity)和反亲和性(Anti-Affinity)2种。 亲和性(Affinity)包括 NodeAffinity 和 PodAffinity 2种。 反亲和性(Anti-Affinity)包括 NodeAntiAffinity 和 PodAntiAffinity 2种。 一、亲和性(Affinity) 表示Pod 需要部署在哪些节点上。
2,针对 podAntiAffinity 中的requiredDuringSchedulingIgnoredDuringExecution,准入控制器选项LimitPodHardAntiAffinityTopology可以把topologyKey限制为kubernetes.io/hostname,如果想自定义值,可以修改准入控制器或者直接禁用。 3,除上述情况外,topologyKey可以为任意合法的键值对。 除了labelSelector和topologyKey,你也可以指定l...
values: ["pod-antiaffinity-required"] #Pod包含标签app=demoapp、ctlr=pod-antiaffinity-required 同时满足 topologyKey: kubernetes.io/hostname #以节点为位置 表示每个节点只能运行1个Pod [root@k8s-master Scheduler]# kubectl apply -f pod-antiaffinity-required-demo.yaml [root@k8s-master Scheduler]# kub...
译自Kubernetes 1.31: MatchLabelKeys in PodAffinity graduates to beta,作者 Kensei Nakada。在工作负载(例如 Deployment)的滚动更新期间,集群中可能同时存在多个版本的 Pod。但是,调度器无法根据 PodAffinity 或 PodAntiAffinity 中指定的LabelSelector区分旧版本和新版本。因此,它将根据 Pod 的版本进行共同定位...
kubernetes提供了一种亲和性调度(Affinity)。它在NodeSelector的基础之上的进行了扩展,可以通过配置的形式,实现优先选择满足条件的Node进行调度,如果没有,也可以调度到不满足条件的节点上,使调度更加灵活。 Affinity主要分为三类: nodeAffinity(node亲和性): 以node为目标,解决pod可以调度到哪些node的问题 ...
而 pod 间反亲和通过 PodSpec 中 affinity 字段下的 podAntiAffinity 字段进行指定。 Pod亲和性/反亲和性的requiredDuringSchedulingIgnoredDuringExecution所关联的matchExpressions下有多个key列表,那么只有当所有key满足时,才能将pod调度到某个区域【针对Pod硬亲和】。
译自Kubernetes 1.31: MatchLabelKeys in PodAffinity graduates to beta,作者 Kensei Nakada。 在工作负载(例如 Deployment)的滚动更新期间,集群中可能同时存在多个版本的 Pod。但是,调度器无法根据 PodAffinity 或 PodAntiAffinity 中指定的LabelSelector区分旧版本和新版本。因此,它将根据 Pod 的版本进行共同定位或分...
Kubernetes中的调度策略可以大致分为两种 一种是全局的调度策略,要在启动调度器时配置,包括kubernetes调度器自带的各种predicates和priorities算法,具体可以参看上一篇文章; 另一种是运行时调度策略,包括nodeAffinity(主机亲和性),podAffinity(POD亲和性)以及podAntiAffinity(POD反亲和性)。
A nodeSelector provides a very simple way to constrain pods to nodes with specific labels, as mentioned in DaemonSets. Affinity and anti-affinity expands the types of con