K8s 亲和性和反亲和性
💡
原文中文,约5800字,阅读约需14分钟。
📝
内容提要
Kubernetes的亲和性和反亲和性用于控制Pod调度。亲和性指定Pod应在哪些节点上运行,反亲和性则避免特定节点。分为节点和Pod两种,策略有硬性和软性之分。配置时使用标签匹配和topologyKey。常见问题包括资源不足和规则过于严格,解决方法有检查资源、污点容忍度和审查规则。
🎯
关键要点
- Kubernetes的亲和性和反亲和性用于控制Pod调度策略。
- 亲和性指定Pod应在哪些节点上运行,反亲和性则避免特定节点。
- 亲和性分为节点亲和性和Pod亲和性,反亲和性同样分为节点反亲和性和Pod反亲和性。
- 亲和性调度分为硬策略和软策略,硬策略必须遵守,软策略尽量遵守。
- 亲和性和反亲和性使用标签匹配和topologyKey进行配置。
- topologyKey用于定义拓扑域,限制亲和性或反亲和性规则的作用范围。
- 亲和性常见使用场景包括将特定Pod调度到特定资源节点上,反亲和性用于提高可用性和容错性。
- Pod反亲和性策略可以由“必须”改为“尽量”,通过修改Pod定义中的配置实现。
- Kubernetes Pod Pending错误通常由资源不足、污点和容忍度不匹配、规则过于严格等原因导致。
- 解决Pod Pending问题的步骤包括检查资源限制、污点和容忍度、审查亲和性规则等。
➡️