k8s 基於node-exporter部署daemonSet個人例子
阿新 • • 發佈:2020-12-17
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
gmond
。
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掛載系統檔案解決。