Kubernetes Daemonset

120 阅读5分钟

Kubernetes Daemonset

Kubernetes Daemonset的定义

Kubernatesh有各种各样的选项和部署方法来执行容器。Daemonset是其中之一。kubernetes Daemonset是一个容器工具,用于检查所有节点及其子集是否在一个pod的副本上执行。Daemonset可以在新的节点上开发pod,这些节点可以被添加到集群中。在暗示Kubernetes的时候,大多数人都没有想到pod的执行问题。但有时,用户想在所有节点上执行一个pod。如果用户想在所有节点上执行fluentd来收集日志,他就会使用Daemonset来与kubernetes联系,以确保pod的实例在集群的节点上。

什么是Kubernetes Daemonset?

Daemonset通常用YAML文件来解释,YAML文件中的组件为用户提供了对Pod部署过程的额外控制。Pod是部署在Kubernetes中的简单对象,它标志着集群中可执行进程的单一实例。
Daemonset是Kubernetes中的一个动态对象,由一个控制器管理。用户可以设置所需的状态,代表每个节点上需要存在的特定pod。控制循环中的妥协可以比较当前的实际状态和期望状态。如果实用的节点,不适合匹配的pod,那么Daemonset的控制器就会自动创建一个新的节点。这个自动过程有所有最近创建的节点和现有节点。由Daemonset的控制器开发的pod被Kubernetes调度器忽略了,并作为同一节点本身出现。

Daemonset的用例是什么?

Daemonset的用例如下。

要在每个节点上执行集群的存储守护程序,请使用。-glusterd-ceph.
在每个节点上执行收集日志的守护程序,使用:fluentd-logstash.
在每个节点上执行监控节点的守护程序,使用。-collectd, -datadog代理作为Prometheus节点导出器。
由于用例很复杂,用户可以通过各种标志、CPU请求和内存单元为不同类型的硬件部署许多可能的Daemonsets,用于典型的种类。

Daemonset可以通过pod部署来增强集群的性能,为每个节点执行维护活动和支持服务。像Kubernetes中的监控应用程序和其他服务的后台进程必须与集群一起存在,以提供及时和相关的服务。

它大多适用于长期运行的服务,如收集日志、监控节点资源、集群中的存储以及与基础设施相关的pod。标准的做法是,Daemonset在整个集群中的所有节点上运行一个守护程序。多个Daemonset可以通过应用不同的标签来管理一种类型的Daemonset。这个标签可以根据各个节点的行为来确定部署中的规则。Daemonsets被部署在后台任务上,用户可以在所有可能的节点上执行,但它不需要任何干预。用户可以为每一种类型的守护程序制定Daemonset,以便在所有节点上执行。用户还可以为每一种类型的守护程序执行多个守护程序。但可以为不同的硬件模型和资源要求使用不同的配置。

如何创建一个守护进程?

Kubernetes Daemonset

  • 要创建一个守护集,需要以下步骤。
  • Daemonset是在一个YAML文件中开发的,有几个部分。
  • 它需要apiVersion
  • 它需要Daemonset的行为的类型或种类
  • 它需要Daemonset的元数据
  • 它需要spec_template用于pod定义,用户需要在所有节点上执行。
  • 它需要spec_selector来管理Daemonset的pod,这种类型必须在pod的模板中是特定的标签。在模板中定义的选择器名称被应用到选择器中。但是,一旦Daemonset被创建,这个名字就不能被改变,而不能把之前创建的pod留在Daemonset中。
  • spec_template-spec-node选择器用于只执行适合选择器的节点子集。
  • Spec-template-spec-affinity用于在具有亲和力的节点子集上执行。
  • 一旦配置完成,Daemonset就会在集群中创建。

与Kubernetes Daemonset荚通信的方法

用户可以将数据从其他pod传输到节点上执行的Daemonset的pod。用户可以通过两种方式将数据指标传输给pod监控。

Daemonset中的pod spec有指定的主机端口,以便在节点上揭开它。然后它可以直接与在其上执行的节点的IP进行交互。

使用相同的pod选择器,服务被创建为一个Daemonset,然后它被用来到达Daemonset。这项服务的局限性在于,一个pod的Daemonset是随机接收请求的。这意味着请求可能会在网络上传递,而不是挂在与被请求的pod相似的pod上。

在推送中,放置在Daemonset中的pod是定制的,以将更新传输到其他服务,如统计数据库,它们确实没有客户端。

在NodeIP with Known port中,Daemonset pods使用hostport,因此pods通过节点IP连接。客户端理解使用nodeIP列表,也知道端口的惯例。

DNS开发无头服务,探索Daemonset使用端点从DNS检索报告的方法

在服务中,它用类似的pod选择器创建服务,并使用它来到达随机节点的守护程序。

结论

因此,Daemonset的功能被用来检查少数或所有的pod是否在每个可用的节点上执行和调度。它在所有节点上执行所需pod的副本。因此,当一个新的节点加入到Kubernetes集群中时,新的pod会被添加到最近连接的节点中。

推荐文章

这是一份关于Kubernetes Daemonset的指南。这里我们讨论了定义,什么是Kubernetes Daemonset?如何创建一个Daemonset?你也可以看看下面的文章来了解更多------。

  1. Kubernetes主机路径
  2. Kubernetes环境变量
  3. Kubernetes自动缩放
  4. Kubernetes注解

The postKubernetes Daemonsetappeared first onEDUCBA.