当复制控制器具有节点反关联性时,Kubernetes DaemonSet的用途是什么

时间:2017-01-13 22:58:54

标签: kubernetes

DaemonSet是一个Kubernetes beta资源,可以确保将一个pod安排到一组节点。默认情况下,节点组是所有节点,但可以使用nodeSelector或节点关联/反关联的Alpha功能限制为子集。

似乎可以使用具有适当节点关联性和反关联性的复制控制器/副本集来实现DaemonSet功能。

我错过了什么吗?如果DaemonSet在它离开Beta之前是否应该被弃用?

1 个答案:

答案 0 :(得分:4)

正如您所说,DaemonSet为每个节点保留一个pod,用于群集中的一部分节点。如果您使用ReplicaSet,则需要

  1. 使用节点affinity / anti-affinity和/或节点选择器来控制要运行的节点集(类似于DaemonSet的工作方式)。
  2. 使用inter-pod anti-affinity在节点之间传播广告连播。
  3. 确保豆荚的数量>集合中的节点数,以便每个节点都安排一个pod。
  4. 然而,确保(3)是一件苦差事,因为节点集可以随时间改变。使用DaemonSet,您不必担心这一点,也不需要创建额外的,不可调度的pod。最重要的是,DaemonSet不依赖于调度程序来分配其pod,这使得它对集群引导很有用(参见How Daemon Pods are scheduled)。

    请参阅"替代DaemonSet" DaemonSet doc中的部分以进行更多比较。 DaemonSet仍然是在没有外部工具的情况下运行每节点守护进程的最简单方法。