DaemonSet
一、概念
DaemonSet 是一个针对节点的Pod控制器,确保全部或者某些节点上运行一个Pod副本。当有节点加入集群时,也会为他们新增一个Pod。节点从集群移除,Pod也会被回收,删除DaemonSet 将会删除它创建的所有Pod。
DaemonSet 常见的用法:
- 在每个节点上运行集群守护进程
- 在每个节点上运行日志收集守护进程
- 在每个节点上运行监控守护进程
二、配置文件
apiVersion: apps/v1
kind: DaemonSet
metadata:name: fluentd
spec:selector:matchLabels:app: logging # 必须要和spec.template.metadata.labels 相匹配,用来声明DaemonSet控制哪些Podtemplate:metadata:labels:app: loggingname: fluentdspec:# 节点匹配nodeSelector:app: log_nodescontainers:- name: fluentd-esimage: agilestacks/fluentd-elasticsearch:v1.3.0env:- name: FLUENTD_ARGSvalue: -qqvolumeMounts:- name: containersmountPath: /var/lib/docker/containers- name: varlogmountPath: /varlogvolumes:- hostPath:path: /data/docker/containersname: containers- hostPath:path: /data/docker/logname: varlog
上述文件中spec.template.spec.nodeSelector
指定了带有标签app=log_nodes
的节点上部署, 如果不指定的话就是所有