DaemonSet使用場景
DaemonSet 確保全部(或者一些)Node 上運行一個 Pod 的副本。當有 Node 加入集群時,也會為他們新增一個 Pod 。當有 Node 從集群移除時,這些 Pod 也會被回收。刪除 DaemonSet 將會刪除它創建的所有 Pod。
使用 DaemonSet 的一些典型用法:
- 運行集群存儲 daemon,例如在每個 Node 上運行
glusterd、ceph。 - 在每個 Node 上運行日志收集 daemon,例如
fluentd、logstash。 - 在每個 Node 上運行監控 daemon,例如 Prometheus Node Exporter、
collectd、Datadog 代理、New Relic 代理,或 Gangliagmond。
1.定義daemonSet配置文件
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter-daemonset
spec:
selector:
matchLabels:
app: node-exporter
type: daemonset
author: danny
template:
metadata:
labels:
app: node-exporter
type: daemonset
author: danny
spec:
containers:
- name: node-exporter
image: quay.io/prometheus/node-exporter
updateStrategy:
type: RollingUpdate
2.應用此配置文件
[root@k8s-master home]# kubectl apply -f daemonSet.yml
3.驗證是否安裝成功
我的k8s集群有3個節點,所以正常來說,應該創建3個node-exporter實例(每個node一個)
[root@k8s-master home]# kubectl get pods

說明:node-exporter是監控宿主機的運行狀況,根據node-exporter官網描述,是不建議使用容器部署的。
使用容器部署,某些關鍵性metrics無法獲取。需通過volume掛載系統文件解決。
