或者相反的要求一个控制器下的Pod必须和某个Pod在一起,则可以通过Pod亲和性(Affinity)和反亲和性(Anti-affinity)来解决。 Pod 亲和性 Pod 亲和性用于将新 Pod 安排到与现有 Pod 相近的位置,这些现有 Pod 可能是同一个应用的不同实例或者是相互协作的服务。以下是一个 Pod 亲和性的示例: 代码语言:javascript ...
该Pod 的affinity定义了一个 Pod 亲和性规则和一个 Pod 反亲和性规则,例子中,podAffinity是requiredDuringSchedulingIgnoredDuringExecution,而podAntiAffinity则是preferredDuringSchedulingIgnoredDuringExecution。 Pod 亲和性规则要求,该 Pod 可以被调度到的节点所在的可用区zone必须已经有一个已经运行的 Pod 包含标签 key=...
反亲和性(Pod Anti-Affinity)用于避免特定的 Pod 运行在相同的节点上,通常用于高可用性(HA)部署。 示例:确保 Pod 分布在不同的节点上,避免单点故障 apiVersion:apps/v1kind:Deploymentmetadata:name:anti-affinity-examplespec:replicas:3selector:matchLabels:app:my-apptemplate:metadata:labels:app:my-appspec:aff...
podAntiAffinity:requiredDuringSchedulingIgnoredDuringExecution:-labelSelector:matchExpressions:-key:appoperator:Invalues:-nginxtopologyKey:"kubernetes.io/hostname" 这段核心代码可以解读成:在同一个Node(topologyKey: "http://kubernetes.io/hostname"限定)上,如果存在app:nginx的Pod(通过labelSelector限定),则绝对...
Affinity主要分为三类: nodeAffinity(node亲和性):以node为目标,解决pod可以调度到哪些node的问题。 podAffinity(pod亲和性):以pod为目标,解决pod可以和哪些以存在的pod部署在同一个拓扑域中的问题。 podAntiAffinity(pod反亲和性):以pod为目标,解决pod不能和哪些已存在pod部署在同一个拓扑域中的问题。
Pod Affinity:适用于需要将某些 Pod 调度到同一节点的情况,例如提高通信效率。 Pod Anti-Affinity:适用于需要将 Pod 分散到不同节点的情况,例如提高高可用性。 4.污点和容忍度(Taints and Tolerations) Taints和Tolerations用于控制哪些 Pod 可以调度到哪些节点。Taints是节点的属性,用于排斥 Pod,而Tolerations是 Pod ...
第二个 pod 指的是 spec.affinity.podAntiAffinity 下的标签选择器“security:s1”。因此,该 Pod 不会被调度到已经托管任何带有“security:s1”标签的 Pod 的节点。 3总结 Kubernetes 中的高级 pod 调度允许实施许多有趣的场景和最佳实践,以在 Kubernetes 上部署复杂的应用程序和微服务。借助 Pod 亲和性,您可以为...
PodAffinity And PodAntiAffinity 在生产环境中存在一类Pod,他们Pod之间相互依赖,要求尽可能被部署到相同的Node节点上,比如将应用的前端和后端部署在一起,减少访问延迟,或者为了避免Pod之间相互竞争,要求某些Pod相互远离,这就是Pod之间的亲和性或者互斥性。Pod亲和同样有requiredDuringSchedulingIgnoredDuringExecution和preferre...
这可以优化Pod的地理分布,减少跨地域通信的延迟。 二、Pod的亲和性/反亲和性 Pod的亲和性(Pod Affinity)和反亲和性(Pod Anti-Affinity)是另一种重要的调度策略,它们允许我们定义Pod与其他Pod之间的调度关系。 亲和性(Pod Affinity):Pod亲和性规则定义了Pod应该与哪些其他Pod运行在同一个节点上。这可以帮助我们将...
podAntiAffinity <Object> #Pod反亲和 Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).#亲和与反亲和中又分硬亲和 软亲和前一节提到的Node亲和一样不在累述[root@k8s-master Scheduler]# kubectl explain pods.spec.affin...