与节点亲和性类似,Pod 的亲和性与反亲和性也有两种类型: requiredDuringSchedulingIgnoredDuringExecution preferredDuringSchedulingIgnoredDuringExecution 例如,你可以使用 requiredDuringSchedulingIgnoredDuringExecution 亲和性来告诉调度器, 将两个服务的 Pod 放到同一个云提供商可用区内,因为它们彼此之间通信非常频繁。 类似...
偶尔,出于安全或分布式等原因也有可能需要将一些 Pod 对象在其运行的位置上隔离开来,如在每个区域运行一个应用代理 Pod 对象等,此时可把这些 Pod 对象间的关系称为反亲和性(anti-affinity)。 Kubernetes 调度器通过内建的 MatchInterPodAffinity 预选策略为这种调度方式完成节点预选,并基于 InterPodAffinityPriority 优选...
通过使用Affinity规则,您可以将具有相似特性的Pod调度到相同节点上,以提高集群的性能和资源利用率。 Affinity规则有哪些类型? Kubernetes的Affinity规则主要分为两种类型:Hard Affinity(强Affinity)和Soft Affinity(软Affinity)。Hard Affinity是指Pod必须与特定的节点标签匹配才能被调度到该节点上。而Soft Affinity是指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.a...
这次亲和性(affinity)我们选择Pod反亲和性(podAntiAffinity)。它用于表达:如果满足下面条件就不调度。 topologyKey 这儿有个非常重要的名称:topologyKey。它和labelSelector之间是与的关系,即topologyKey表达的条件要满足,labelSelector表达的条件也要满足。 topologyKey的写法非常简单,只要传入Node标签的一个Key的名称。比...
Pod反亲和性(Pod anti-affinity)是一种调度策略,用于在Kubernetes集群中控制Pod的部署位置。它可以确保一组相关的Pod不会被调度到同一个节点上,从而提高应用的可靠性和容错...
启动探针(Startup Probe)确定容器应用何时成功启动,检查到启动失败后,即会重新启动pod。 3. 滥用latest标签 使用latest标签没有明确目的性,难以统一管理。Kubernetes文档对于在生产环境中使用docker images:latest标签有明确规定: 在生产环境中应避免使用latest标签部署容器,因为这会增加跟踪镜像版本和回滚的难度。
亲和性(Affinity)主要分为三类: 节点亲和性(nodeAffinity):以node为目标,解决pod可以调度到哪些node的问题 pod亲和性(podAffinity):以pod为目标,解决pod可以和哪些已经存在pod部署到同一个拓扑域中的问题 pod反亲和性(podAntiAffinity):以pod为目标,解决pod不能和哪些已存在的pod部署在统一个拓扑域中的问题 ...
其中结构体Affinity负责亲和性/反亲和性特性,其中有三个属性,分别是NodeAffinity、PodAffinity和PodAntiAffinity,这三个属性分别对应节点亲和性调度、Pod亲和性调度、Pod反亲和性调度。从这张结构体图可以发现,现在是不存在节点反亲和性特性的。 我们先来看看1.5版本中,是如何配置亲和性/反亲和性的: ...
二、nodeAffinity节点亲和性 1. 给节点打上标签 [root@master ~]# kubectl label nodes master k8s=master 查看三个节点的标签,分别拥有k8s=master,k8s=node1,k8s=node2标签 2.编辑资源清单设置节点亲和性 测试前把我们资源都删除掉 [root@master ~]# kubectl delete pod,svc,deploy --all ...