K8s 亲和性和反亲和性
原文中文,约5800字,阅读约需14分钟。
📝
内容提要
Kubernetes的亲和性和反亲和性用于控制Pod调度。亲和性指定Pod应在哪些节点上运行,反亲和性则避免特定节点。分为节点和Pod两种,策略有硬性和软性之分。配置时使用标签匹配和topologyKey。常见问题包括资源不足和规则过于严格,解决方法有检查资源、污点容忍度和审查规则。
❓
Q&A
Kubernetes的亲和性和反亲和性有什么作用?
亲和性和反亲和性用于控制Pod的调度,指定Pod应在哪些节点上运行或避免在哪些节点上运行。
如何配置Kubernetes的亲和性和反亲和性?
可以通过Pod的affinity字段进行配置,使用标签匹配和topologyKey来定义规则。
Kubernetes中亲和性和反亲和性有哪些类型?
亲和性分为节点亲和性和Pod亲和性,反亲和性同样分为节点反亲和性和Pod反亲和性。
什么是Kubernetes中的硬策略和软策略?
硬策略是必须遵守的规则,软策略是尽量遵守的规则,后者在没有满足条件的节点时可以忽略。
导致Kubernetes Pod Pending的常见原因是什么?
常见原因包括资源不足、污点和容忍度不匹配、规则过于严格等。
如何将Pod反亲和性策略从“必须”改为“尽量”?
需要修改Pod定义中的podAntiAffinity配置,将requiredDuringSchedulingIgnoredDuringExecution改为preferredDuringSchedulingIgnoredDuringExecution。
🏷️