k8s集群监控(4)-部署node-exporter

简介: 部署node-export ,监控节点基础监控,比如内存,IO,磁盘,CPU等

环境准备


系统Centos 7.9

k8s集群:

版本:1.21.5

节点:

192.168.10.201  master

192.168.10.202  work




image.png


在k8s集群每个节点上,部署node-export



此案例,只在192.168.10.201  master 节点上,安装了node-export,进行改节点的监控


脚本配置:


deploy-node-exporter.sh

#!/bin/bashwgethttps://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gztarzxfnode_exporter-1.4.0.linux-amd64.tar.gzmvnode_exporter-1.4.0.linux-amd64/usr/local/node_exportercat<<EOF>/usr/lib/systemd/system/node_exporter.service[Unit]Descrption=https://prometheus.io[Service]Restart=on-failureExecStart=/usr/local/node_exporter/node_exporter--collector.systemd.unit-whitelist=(docker|kubelet|kube-proxy|flanneld).service[Install]WantedBy=multi-user.targetEOFsystemctldaemon-reloadsystemctlenablenode_exportersystemctlrestartnode_exporter



执行脚本部署node-export


shdeploy-node-exporter.sh



在prometheus 的configmap中,设置对node-exporter 的监控配置




有关prometheus 的部署,请查看 prometheus部署 这篇文章

在这篇文章的部署配置文件中,添加对部署的了node-export的节点

资源监控配置:


image.png


prometheus-configmap.yaml 完整配置:

apiVersion: v1
kind: ConfigMap
metadata:  name: prometheus-config
  namespace: kube-system
  labels:    kubernetes.io/cluster-service: "true"    addonmanager.kubernetes.io/mode: EnsureExists
data:  prometheus.yml: |    scrape_configs:    - job_name: prometheus      static_configs:      - targets:        - localhost:9090    - job_name: kubernetes-nodes      static_configs:      - targets: [192.168.10.201:9100]        labels:           node_name: k201    - job_name: kubernetes-apiservers      kubernetes_sd_configs:      - role: endpoints      relabel_configs:      - action: keep        regex: default;kubernetes;https        source_labels:        - __meta_kubernetes_namespace        - __meta_kubernetes_service_name        - __meta_kubernetes_endpoint_port_name      scheme: https      tls_config:        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt        insecure_skip_verify: true      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token    - job_name: kubernetes-nodes-kubelet
      kubernetes_sd_configs:      - role: node
      relabel_configs:      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      scheme: https
      tls_config:        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    - job_name: kubernetes-nodes-cadvisor
      kubernetes_sd_configs:      - role: node
      relabel_configs:      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - target_label: __metrics_path__
        replacement: /metrics/cadvisor
      scheme: https
      tls_config:        ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        insecure_skip_verify: true      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    - job_name: kubernetes-service-endpoints
      kubernetes_sd_configs:      - role: endpoints
      relabel_configs:      - action: keep
        regex: true        source_labels:        - __meta_kubernetes_service_annotation_prometheus_io_scrape
      - action: replace
        regex: (https?)
        source_labels:        - __meta_kubernetes_service_annotation_prometheus_io_scheme
        target_label: __scheme__
      - action: replace
        regex: (.+)
        source_labels:        - __meta_kubernetes_service_annotation_prometheus_io_path
        target_label: __metrics_path__
      - action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        source_labels:        - __address__
        - __meta_kubernetes_service_annotation_prometheus_io_port
        target_label: __address__
      - action: labelmap
        regex: __meta_kubernetes_service_label_(.+)
      - action: replace
        source_labels:        - __meta_kubernetes_namespace
        target_label: kubernetes_namespace
      - action: replace
        source_labels:        - __meta_kubernetes_service_name
        target_label: kubernetes_name
    - job_name: kubernetes-services
      kubernetes_sd_configs:      - role: service
      metrics_path: /probe
      params:        module:        - http_2xx
      relabel_configs:      - action: keep
        regex: true        source_labels:        - __meta_kubernetes_service_annotation_prometheus_io_probe
      - source_labels:        - __address__
        target_label: __param_target
      - replacement: blackbox
        target_label: __address__
      - source_labels:        - __param_target
        target_label: instance
      - action: labelmap
        regex: __meta_kubernetes_service_label_(.+)
      - source_labels:        - __meta_kubernetes_namespace
        target_label: kubernetes_namespace
      - source_labels:        - __meta_kubernetes_service_name
        target_label: kubernetes_name
    - job_name: kubernetes-pods
      kubernetes_sd_configs:      - role: pod
      relabel_configs:      - action: keep
        regex: true        source_labels:        - __meta_kubernetes_pod_annotation_prometheus_io_scrape
      - action: replace
        regex: (.+)
        source_labels:        - __meta_kubernetes_pod_annotation_prometheus_io_path
        target_label: __metrics_path__
      - action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        source_labels:        - __address__
        - __meta_kubernetes_pod_annotation_prometheus_io_port
        target_label: __address__
      - action: labelmap
        regex: __meta_kubernetes_pod_label_(.+)
      - action: replace
        source_labels:        - __meta_kubernetes_namespace
        target_label: kubernetes_namespace
      - action: replace
        source_labels:        - __meta_kubernetes_pod_name
        target_label: kubernetes_pod_name


重启prometheus 服务


执行一下命令进行prometheus服务重启:


kubectldelete-fprometheus-configmap.yamlkubectlapply-fprometheus-configmap.yaml



打开prometheus的控制台


image.png














相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
存储 监控 算法
局域网监控其他电脑的设备信息管理 Node.js 跳表算法
跳表通过分层索引实现O(logn)的高效查询、插入与删除,适配局域网监控中设备动态接入、IP映射及范围筛选等需求,相比传统结构更高效稳定,适用于Node.js环境下的实时设备管理。
155 9
|
5月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
234 0
|
JSON JavaScript Linux
【MCP教程系列】Node.js+TypeScript搭建NPX MCP服务并自定义部署至阿里云百炼
本文介绍如何将阿里云百炼的工作流封装成MCP服务并部署,随后引入到智能体中使用。主要步骤包括:1) 封装MCP服务;2) 发布到npm官方平台;3) 在阿里云百炼平台创建自定义MCP服务;4) 在智能体中添加自定义MCP服务。通过这些步骤,用户可以轻松将工作流转化为MCP服务,并在智能体中调用。
3189 0
|
3月前
|
存储 监控 JavaScript
企业上网监控系统的恶意 URL 过滤 Node.js 布隆过滤器算法
布隆过滤器以低内存、高效率特性,解决企业上网监控系统对百万级恶意URL实时检测与动态更新的难题,通过概率性判断实现毫秒级过滤,内存占用降低96%,适配大规模场景需求。
277 3
|
4月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
293 3
|
10月前
|
存储 Kubernetes 开发工具
使用ArgoCD管理Kubernetes部署指南
ArgoCD 是一款基于 Kubernetes 的声明式 GitOps 持续交付工具,通过自动同步 Git 存储库中的配置与 Kubernetes 集群状态,确保一致性与可靠性。它支持实时同步、声明式设置、自动修复和丰富的用户界面,极大简化了复杂应用的部署管理。结合 Helm Charts,ArgoCD 提供模块化、可重用的部署流程,显著减少人工开销和配置错误。对于云原生企业,ArgoCD 能优化部署策略,提升效率与安全性,是实现自动化与一致性的理想选择。
680 0
|
9月前
|
存储 Kubernetes 异构计算
Qwen3 大模型在阿里云容器服务上的极简部署教程
通义千问 Qwen3 是 Qwen 系列最新推出的首个混合推理模型,其在代码、数学、通用能力等基准测试中,与 DeepSeek-R1、o1、o3-mini、Grok-3 和 Gemini-2.5-Pro 等顶级模型相比,表现出极具竞争力的结果。
|
10月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
948 33
|
10月前
|
Prometheus Kubernetes 监控
Kubernetes监控:Prometheus与AlertManager结合,配置邮件告警。
完成这些步骤之后,您就拥有了一个可以用邮件通知你的Kubernetes监控解决方案了。当然,所有的这些配置都需要相互照应,还要对你的Kubernetes集群状况有深入的了解。希望这份指南能帮助你创建出适合自己场景的监控系统,让你在首次发现问题时就能做出响应。
584 22

推荐镜像

更多