首先什么是DaemonSet?
有些时候可能有些节点运行多个同类业务的Pod,有些节点上又没有这类Pod运行;而后台支撑型服务的核心关注点在K8s集群中的节点(物理机或虚拟机),要保证每个节点上都有一个此类Pod运行。节点可能是所有集群节点也可能是通过nodeSelector选定的一些特定节点。
那这时候就需要到了DaemonSet,DaemonSet是保证在每个Node上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用。
简单来说就是DaemonSet就是让一个应用在所有的k8s集群节点上都运行一个副本。典型的应用包括:
- 日志收集,比如Fluentd,Logstash等
- 系统监控,比如Prometheus Node Exporter,Collectd,New Relic agent,Ganglia gmond等
- 系统程序,比如Kube-proxy, Kube-dns, Glusterd, Ceph等
实际上Kubernetes自己本身就在用DaemonSet运行自己的系统组件,下面目睹下。
好了本次的DaemonSet的实践讨论到此结束,本文参考了Kubernetes中文社区。
原文地址:http://blog.51cto.com/devingeng/2134114
时间: 2024-10-10 17:14:56