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。

🏷️

标签

➡️

继续阅读