我们正在尝试隔离特定 pod 的问题,并希望将其单独部署在节点上。(kube-system pod 除外)
有没有简单的方法可以让高优先级的 Pod 自行调度?(例如:将 CPU 请求设置为 100%)
答案1
一般来说,您不应该将 Pod 固定到特定节点 - 因此 Kubernetes 中没有针对此的特定功能。
但无论如何,您可以通过多种方式实现这一点。
(例如:将 CPU 请求设置为 100%)
是的,如果您的节点是同构的(例如,所有节点的 CPU 数量相同),那么我认为这是最好的方法。如果您的节点有 4 个 CPU 核心,您可以将 CPU 请求设置为 3.5 或其他值(取决于 kube-system pod 的请求量)。
使用节点选择器可能是解决这个问题的另一种方法。
答案2
这就是问题所在污点和容忍度旨在解决
我猜测大多数 kube 系统都有一种“通用”容忍度,旨在处理所有污点(如果没有,可以简单地添加一个,如下所示:)
tolerations:
- effect: NoSchedule
operator: Exists
然后,你只需用一些无意义的密钥污染节点,并将匹配的容忍度添加到你想要隔离的 Pod 或部署中