DaemonSet是什么?
DaemonSet 是一个确保全部或者某些节点上必须运行一个 Pod的工作负载资源(守护进程),当有node(节点)加入集群时, 也会为他们新增一个 Pod。
下面是常用的使用案例:
可以用来部署以下进程的pod
- 集群守护进程,如
Kured、node-problem-detector
- 日志收集守护进程,如
fluentd、logstash
- 监控守护进程,如
promethues node-exporter
通过创建DaemonSet 可以确保 守护进程pod 被调度到每个可用节点上运行。
DaemonSet
是由控制器(controller manager
)管理的 Kubernetes 工作资源对象。我们通过声明一个想要的daemonset状态,表明每个节点上都需要有一个特定的 Pod。
协调控制回路会比较期望状态和当前观察到的状态。
如果观察到的节点没有匹配的 Pod,DaemonSet controller
将自动创建一个。
在这个过程包括现有节点和所有新创建的节点。不过DaemonSet 控制器创建的 Pod
会被Kubernetes
调度器忽略,即DaemonSet Pods
由 DaemonSet
控制器创建和调度。这样带来的两个微妙的问题:
Pod
行为的不一致性:正常