0
点赞
收藏
分享

微信扫一扫

k8s node_exporter部署

野见 2022-04-24 阅读 65

相关链接

docker hub链接:https://hub.docker.com/r/prom/node-exporter
node exporter yaml: https://github.com/bibinwilson/kubernetes-prometheus

部署

[root@k8s-master-1 prometheus]# cat namespace.yaml 
apiVersion: v1
kind: Namespace
metadata:
  name: prometheus
[root@k8s-master-1 prometheus]# cat node_exporter.yaml 
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-exporter
  namespace: prometheus
  labels:
    name: node-exporter
spec:
  selector:
    matchLabels:
     name: node-exporter
  template:
    metadata:
      labels:
        name: node-exporter
    spec:
      tolerations:
      - key: "node-role.kubernetes.io/master"
        operator: "Exists"
        effect: "NoSchedule"
      hostPID: true
      hostIPC: true
      hostNetwork: true # hostNetwork hostIPC hostPID都为True时,表示这个Pod里的所有容器会直接使用宿主机的网络,直接与宿主机进行IPC(进程间通信通信,可以看到宿主机里正在运行的所有进程。
                        # 加入了hostNetwork:true会直接将我们的宿主机的9100端口映射出来,从而不需要创建service在我们的宿主机上就会有一个 9100的端口
      containers:
      - name: node-exporter
        image: prom/node-exporter:v0.16.0
        ports:
        - containerPort: 9100
        resources:
          requests:
            cpu: 0.15   # 这个容器运行至少需要0.15核cpu
        securityContext:
          privileged: true # 开启特权模式
        args:
        - --path.procfs    # 配置挂载宿主机(node节点)的路径
        - /host/proc
        - --path.sysfs     # 配置挂载宿主机(node节点)的路径
        - /host/sys
        - --collector.filesystem.ignored-mount-points  # 通过正则表达式忽略某些文件系统挂载点的信息收集
        - '"^/(sys|proc|dev|host|etc)($|/)"'
        volumeMounts: # 将主机/dev /proc /sys 这些目录挂在到容器中,这是因为我们采集的很多节点数据都是通过这些文件来获取系统信息的。
        - name: dev
          mountPath: /host/dev
        - name: proc
          mountPath: /host/proc
        - name: sys
          mountPath: /host/sys
        - name: rootfs
          mountPath: /rootfs
      volumes:
      - name: proc
        hostPath:
          path: /proc
      - name: dev
        hostPath:
          path: /dev
      - name: sys
        hostPath:
          path: /sys
      - name: rootfs
        hostPath:
          path: /
# 查看部署
[root@k8s-master-1 prometheus]# kubectl get pods -n prometheus
NAME                  READY   STATUS    RESTARTS   AGE
node-exporter-m6jmm   1/1     Running   0          4m8s
node-exporter-zm78t   1/1     Running   0          4m8s

# 获取CPU指标
# HELP 解释当前指标的含义,上面表示在每种模式下
# TYPE 说明当前指标的数据类型
[root@k8s-master-1 prometheus]# curl -s http://localhost:9100/metrics | grep -i cpu | head -n 10
# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started.
# TYPE go_memstats_gc_cpu_fraction gauge
go_memstats_gc_cpu_fraction 6.608966775338419e-06
# HELP node_cpu_guest_seconds_total Seconds the cpus spent in guests (VMs) for each mode.
# TYPE node_cpu_guest_seconds_total counter
node_cpu_guest_seconds_total{cpu="0",mode="nice"} 0
node_cpu_guest_seconds_total{cpu="0",mode="user"} 0
node_cpu_guest_seconds_total{cpu="1",mode="nice"} 0
node_cpu_guest_seconds_total{cpu="1",mode="user"} 0
# HELP node_cpu_seconds_total Seconds the cpus spent in each mode.
举报

相关推荐

0 条评论