1

我想在集群的所有节点上安排一个 pod。没有例外。当资源不短缺时,DaemonSet 似乎可以胜任。但有时其他 pod 会在某些节点上被调度,这样就没有更多资源可供 DaemonSet 的 pod 被调度。

强制在所有节点上调度 DaemonSet 的 pod 的最佳方法是什么?在 GCP 上运行,因此可用的最新版本是 1.11.5

4

2 回答 2

0

事实证明,这在 k8s 1.12 及更高版本中得到了解决。他们制作了默认调度程序来处理守护程序集。

于 2019-01-29T07:24:36.270 回答
0

听起来您可能已经default scheduler为 DaemonSets 配置了,并且您的 pod 未在 kube-scheduler 配置中配置为抢占(抢占已禁用):

apiVersion: componentconfig/v1alpha1
kind: KubeSchedulerConfiguration
algorithmSource:
  provider: DefaultProvider

...

disablePreemption: true

默认情况下disablePreemption: false,如果您的 pod 没有被抢占以允许安排守护程序集,则存在其他错误。

如果您使用的是DaemonSet 调度程序(默认在 k8s 1.11 或更早版本上),则无论如何都应该调度 DaemonSet pod。(如果他们不是,那么还有其他问题)。

于 2019-01-04T00:51:15.723 回答