1. 程式人生 > 實用技巧 >k8s 基於node-exporter部署daemonSet個人例子

k8s 基於node-exporter部署daemonSet個人例子

DaemonSet使用場景

DaemonSet確保全部(或者一些)Node 上執行一個 Pod 的副本。當有 Node 加入叢集時,也會為他們新增一個 Pod 。當有 Node 從叢集移除時,這些 Pod 也會被回收。刪除 DaemonSet 將會刪除它建立的所有 Pod。

使用 DaemonSet 的一些典型用法:

  • 執行叢集儲存 daemon,例如在每個 Node 上執行glusterdceph
  • 在每個 Node 上執行日誌收集 daemon,例如fluentdlogstash
  • 在每個 Node 上執行監控 daemon,例如Prometheus Node Exportercollectd
    、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掛載系統檔案解決。