k8s学习(11):DaemonSet控制器

什么是DaemonSet

DaemonSet确保全部(或者一些)Node上运行一个Pod的副本。当有Node加入集群时,也会为他们新增一个Pod。当有Node从集群移除时,这些Pod也会被回收。删除DaemonSet将会删除他创建的所有Pod

典型用法:

  • 运行集群存储daemon,例如在每个Node上运行glusterd、ceph-mon
  • 在每个Node上运行日志收集daemon,例如fluentd、logstash
  • 在每个Node上运行监控daemon,例如Prometheus Node Exporter、colletcd、Datadog代理、New Relic代理、Ganglia gmond

举个栗子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: daemonset-example
labels:
app: daemonset
spec:
selector:
matchLabels:
name: daemonset-example
template:
metadata:
labels:
name: daemonset-example
spec:
containers:
- name: daemonset-example
image: hub.test.com/library/myapp:v1

视频上说,metadata.labels和spec.selector.matchLabels要对应

实际上我两者写不一样,也是可以创建成功,只有当spec内的matchLabels和spec内的labels对应才能创建成功