【问题标题】:K8s Scheduling DaemonSetsK8s 调度 DaemonSets
【发布时间】:2019-01-29 15:24:36
【问题描述】:

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

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

【问题讨论】:

    标签: kubernetes scheduler daemonset


    【解决方案1】:

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

    apiVersion: componentconfig/v1alpha1
    kind: KubeSchedulerConfiguration
    algorithmSource:
      provider: DefaultProvider
    
    ...
    
    disablePreemption: true
    

    默认值为disablePreemption: false,因此如果您的 pod 没有被抢占以允许安排守护程序集,则存在其他问题。

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-07-16
      • 2020-08-18
      • 2020-11-06
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2021-01-23
      相关资源
      最近更新 更多