kubernetes controller源码解读之DaemonSet
1. 适用场景
通过 DaemonSet部署的应用(Pod)主要用于满足如下场景:
- 类似守护进程,每个节点保证部署一个应用
- 能跟随节点的新增/移除,自动创建/删除守护应用
- 可以方便的对守护应用进行版本升级或者回滚
实际应用场景中,每个节点都需要的agent类型组件(如日志收集组件fluentd等),一般都采用DaemonSet方式部署。
2. DaemonSet资源定义
- 单个 DaemonSet资源的定义结构( DaemonSet的yam定义需要遵守该结构)如下:
type DaemonSet struct {
metav1.TypeMeta
metav1.ObjectMeta
Spec DaemonSetSpec
Status DaemonSetStatus
}
DaemonSets Controller将根据 D