K8s调度守护程序集

时间:2019-01-03 22:03:50

标签: kubernetes scheduler daemonset

我想在集群的所有节点上安排一个Pod。没有例外。当资源不短缺时,DaemonSet似乎可以完成这项工作。但是有时其他Pod会在某些节点上进行调度,这样就没有更多资源可供DaemonSet的Pod调度。

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

2 个答案:

答案 0 :(得分:0)

在kube-scheduler配置中,可能您为DaemonSet设置了default scheduler的声音,而未将pod设置为preempted(禁用了抢占):

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

...

disablePreemption: true

默认值为disablePreemption: false,因此,如果您的Pod没有被抢占以允许调度守护程序集,则还有其他问题。

如果您使用的是DaemonSet scheduler(在k8s 1.11或更早版本上是默认值),则应计划DaemonSet pod。 (如果没有,那么又有其他问题)。

答案 1 :(得分:0)

结果证明,在k8s 1.12及更高版本中可以解决此问题。他们将默认调度程序设置为处理守护程序集。