本章讲解知识点
-
- 前言
-
- PodAffinity 概念
-
- 实验
1. 前言
在实际的生产环境中有一类特殊的 Pod 调度需求:存在某些相互依赖、频繁调用的 Pod,它们需要被尽可能地部署在同一个 Node 节点、机架、机房、网段内,这就是 Pod 之间的亲和性;反之,出于避免竞争或者容错的需求,我们也可能使某些 Pod 尽可能地远离某些特定的 Pod,这就是 Pod 之间的反亲和性和互斥性
2. PodAffinity 概念
PodAffinity 和 Pod Anti Affinity 是 Kubernetes 中用于定义拓扑关系的机制。简单来说,PodAffinity 用于确定哪些相关联的 Pod 可以在同一个拓扑域中共存,而 Pod Anti Affinity 则用于确定哪些相关联的 Pod 在同一个拓扑域中应该互斥。拓扑域由一些 Node 节点组成,这些节点通常有相同的地理空间坐标,比如在同一个机架、机房或地区。我们一般用 region 表示机架、机房这样的拓扑区域,用 Zone 表示地区这样更大的拓扑区域。在极端情况下,我们也可以认为一个 Node 就是一个拓扑区域。Kubernetes 中默认的一些拓扑域包括:
- kubernetes.io/hostname;
- topology.kubernetes.io/region;
- topology.kubernetes.io/zone
需要注意的是以