pod 间的亲缘性.
16.3.1 使用 pod 间亲缘性将多个 pod 部署在同一个节点上
创建一个后端 pod:
-l指定了标签

在 pod 定义中指定 pod 亲缘性
前端 pod yaml:

- topology: 拓扑
- 该部署将创建包含强制性要求的 pod ,其中要求 pod 将被调度到和其他包含 app=backeηd 标签的 pod 所在的相同节点上(通过topologyKey 宇段指定)

部署包含 pod 亲缘性的 pod
查看后端 pod 所在节点:

部署前端 pod 并观察所在节点:

了解调度器如何使用 pod 亲缘性规则
如果现在你删除了后端 pod ,调 度器会将该 pod 调度到口 od e2 , 即便后端 pod 本身没有定义任何 pod 亲缘性规则(只有前端 pod 设置了规 则) 。这种情况很合理,因为假设后端 pod 被误删除而被调度到其他节点上, 前端 pod 的 亲缘性规则就被打破了 。
查看日志:

16.3.2 将 pod 部署在同一机柜, 可用性区域或者地理地域
在同一个可用性区域中协同部署 pod
设置 topologyKey 为 failure-domain.beta.kubernetes.io/zone
在同一个地域中协同部署 pod
设置 topologyKey 为 failure-domain.beta.kubernetes.io/region
了解 topologyKey 是如何工作的
就是利用标签.

16.3.3 表达 pod 亲缘性优先级取代强制性要求


16.3.4 利用 pod 的非亲缘性分开调度 pod
希望 pod 原理彼此.
- podAntiAffinity

- 远离
使用非亲缘性分散一个部署中的 pod

理解 pod 非亲缘性优先级
preferredDuringSchedulingIgnoredDuringExecution 字段
与使用 pod 亲缘 性 一 样, topologyKey 宇段决定了 pod 不能被调度的范围 。可以使用这个字段决定 pod 不能被调 度 到同 一 个机柜、 可 用性 区域 、地域,或者任何你创建的自定 义节点标签标示的范围 。
