概念
DaemonSet能够让所有(或者特定)的节点运行同一个pod。
当节点加入到K8S集群中,pod会被(DaemonSet)调度到该节点上运行,当节点从K8S集群中被移除,被DaemonSet调度的pod会被移除,如果删除DaemonSet,所有跟这个DaemonSet相关的pods都会被删除。
在某种程度上,DaemonSet承担了RC的部分功能,它也能保证相关pods持续运行,如果一个DaemonSet的Pod被杀死、停止、或者崩溃,那么DaemonSet将会重新创建一个新的副本在这台计算节点上。
一般应用于日志收集、监控采集、分布式存储守护进程、ingress等
例子
cat<< EOF > lykops-daemonset.yaml apiVersion:extensions/v1beta1 kind:DaemonSet metadata: name: lykops-daemonset labels: software: apache project: lykops app: lykops-daemonset version: v1 spec: template: metadata: labels: name: lykops-daemonset software: apache project: lykops app: lykops-daemonset version: v1 spec: containers: - name: hostname image:docker.io/kubernetes/serve_hostname:1.1 EOF kubectlcreate -f lykops-daemonset.yaml
选择运行节点:当指定.spec.template.spec.nodeSelector,DaemonSet将会在匹配的节点上创建pod。如果都没有指定,DaemonSet在所有node节点上创建pod.