DaemonSet是一个Kubernetes特性,它允许您运行一个Kubernetes pod在满足特定条件的所有集群节点。每当一个新节点添加到集群中,添加了吊舱,当删除节点的集群,豆荚。当DaemonSet删除,Kubernetes删除所有创建的豆荚。
在Kubernetes架构中,DaemonSets用于跨集群部署后台服务,提供支持服务为每个node-such系统操作服务,收集日志,监控框架就像普罗米修斯和存储卷。
通常,一个DaemonSet部署一种守护进程pod在所有节点。但在更复杂的配置,你可以有几个daemonsets控制一种类型的守护进程,使用标签来定义每个节点部署规则。
这是我们有关的一系列文章的一部分Kubernetes自动定量。
在本文中,您将学习:
DaemonSet是一个独立的对象都有自己的控制器。DaemonSet有理想状态舱需要运行在所有符合条件的节点(如果没有应用约束),或一组有限的节点(如果使用选择器)。DamonSet控制器使用和解循环检查节点的当前状态,如果他们不是当前运行所需的吊舱,它将运行它们。
DaemonSet控制器和解进程回顾现有节点和新创建的节点。默认情况下,Kubernetes调度程序忽略了创造的豆荚DamonSet,让他们存在于节点到节点本身是关闭。
另一个选择是限制守护程序将运行在节点,节点使用一个选择器。的nodeSelectorDaemonSet YAML文件中的字段允许您告诉DaemonSet控制器节点的部署守护进程。
您可以使用YAML文件来配置一个DaemonSet。看例子YAML文件。
这里有几个重要的部分DaemonSet配置:
| 元素 | 需要吗? | 描述 |
| apiVersion | 是的 | 版本服务器所使用的API |
| 类 | 是的 | 应该是DaemonSet |
| 元数据 | 是的 | DaemonSet的名称,名称空间应该运行,和标签可以帮助你找到并组织DaemonSet |
| spec.template | 是的 | 这是一个圆荚体模板,它定义了pod你打算在所有合格的集群节点上运行 |
| spec.selector | 是的 | 一个圆荚体选择器由DaemonSet管理。必须是一个圆荚体中指定的标签模板。上面的例子表明,该选择器daemonset-container-a,这也是圆荚体中定义的模板。这个创建DaemonSet不得更改。 |
| spec.template.spec.nodeSelector | 没有 | 可以只运行的一些节点匹配选择器 |
| spec.template.spec.affinity | 没有 | 可以运行的节点匹配所需的亲和力 |
| 容器 | 没有 | 指定容器的形象应该运行在DaemonSet吊舱 |
DaemonSet豆荚尊重越来越难以和纵容像常规的豆荚,也有几个纵容自动添加;例如,DaemonSet豆荚不是预定的节点上没有准备好或遥不可及的。
当你完成了配置,使用下面的命令创建一个Daemonset (my-daemonset。yaml是您的配置文件):
kubectl应用- f my-daemonset.yaml
有两种方法来安排豆荚,应该每一个符合条件的节点上运行,作为DaemonSet的一部分:
第一个选项是有问题的,因为它可能会导致不一致的仓行为,可以混淆集群管理员,因为:
因此,建议使用第二个选择是创建DaemonSets默认调度器。这个选项可以确保:
通常,可伸缩性在Kubernetes通过扩展部署在特定的条件下。部署试图满足期望状态通过寻找合适的节点,和部署豆荚。或者,如果不再需要豆荚,终止它们。
从另一个角度DaemonSets方法可伸缩性。当你有一个后台服务等监控,你使用DaemonSet部署它,它会自动向上和向下扩展一起运行在集群节点的资格。
换句话说,DaemonSet后台服务战略是一个简单的可伸缩性。当多个符合条件的节点被添加到集群中,后台服务尺度。当删除节点时,它会自动缩小。
可以通过改变更新DaemonSet下列之一:
在DaemonSet配置中,您可以选择两种更新策略:
如何更新进展,运行这个命令:my-daemonset kubectl启动状态
从现货现货海洋NetApp释放DevOps团队从繁琐的管理节点集群的工人在帮助降低成本90%。现货海洋的自动优化提供了以下好处:
了解更多关于现货的海洋今天!