prometheus获取kubelet接口监控数据

一、前言

k8s集群的kubelet服务内部有自带的cadvisor服务用于收集k8s集群的监控数据,所以可以通过调用kubelet的接口就能获取pod的资源监控数据,在新版本的k8s中,kubelet的监控数据获取端口为10250端口,老版本的是10255端口

二、配置prometheus获取监控数据

以下分为两种情况,一种是在k8s集群内部署的prometheus,一种是在k8s集群外部署的prometheus

以下是k8s集群外部署的prometheus配置

编辑Prometheus配置文件

vi /opt/prometheus/prometheus/prometheus.yml

bash 复制代码
scrape_configs:         #在该配置项下写入以下内容
  - job_name: k8s-cadvisor
    honor_timestamps: true
    metrics_path: /metrics/cadvisor
    scheme: https
    kubernetes_sd_configs:  # kubernetes 自动发现
    - api_server: https://10.1.60.119:6443  # apiserver 地址
      role: node   # node 类型的自动发现
      bearer_token_file: ./k8s.token
      tls_config:
        ca_file: ./ca.crt
        insecure_skip_verify: true
    bearer_token_file: ./k8s.token
    tls_config:
      ca_file: ./ca.crt
      insecure_skip_verify: true
    relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
    metric_relabel_configs:
      - source_labels: [instance]
        separator: ;
        regex: (.+)
        target_label: node
        replacement: $1
        action: replace

以上关于token和ca证书的获取可以参考:k8s集群授权prometheus(集群外部署)_Apex Predator的博客-CSDN博客

token是创建一个名为k8s.token的文件,把k8s集群获取到的token放进去即可,ca证书就直接拷贝过来

重启prometheus服务

systemctl restart prometheus

查看Prometheus是否获取到kubelet接口数据

以下是k8s集群内部署的prometheus配置

vi /opt/prometheus/prometheus/prometheus.yml

bash 复制代码
scrape_configs:         #在该配置项下写入以下内容
  - job_name: 'k8s-cadvisor'
    metrics_path: /metrics/cadvisor
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - source_labels: [__address__]
      regex: '(.*):10250'    #获取所有监听10250接口的地址
      replacement: '${1}:10255'   #将以上所有监听10250的地址,改为监听10255接口
      target_label: __address__
      action: replace
    - action: labelmap
      regex: __meta_kubernetes_node_label_(.+)

    metric_relabel_configs:
    - source_labels: [instance]
      separator: ;
      regex: (.+)
      target_label: node
      replacement: $1
      action: replace

    - source_labels: [pod_name]
      separator: ;
      regex: (.+)
      target_label: pod
      replacement: $1
      action: replace
    - source_labels: [container_name]
      separator: ;
      regex: (.+)
      target_label: container
      replacement: $1
      action: replace

重启prometheus服务

systemctl restart prometheus

以上就是两种不同的Prometheus部署方式去获取kubelet监控数据的配置方法

关于granfana使用的资源监控模板则是使用:K8S Dashboard CN 20211010 StarsL.cn | Grafana Labs

需要配合kube-state-metrics监控一起使用,但是使用该模板在1.24本版以上的k8s中都会出现数据缺失

相关推荐
fs哆哆几秒前
在VB.net和VBA中,自定义函数GetTargetSheet()返回工作表对象
java·开发语言·前端·javascript·ecmascript
风象南10 分钟前
SpringBoot中内置的49个常用工具类
java·spring boot·后端
lybugproducer2 小时前
创建型设计模式之:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式
java·设计模式·建造者模式·简单工厂模式·工厂方法模式·抽象工厂模式·面向对象
南客先生2 小时前
马架构的Netty、MQTT、CoAP面试之旅
java·mqtt·面试·netty·coap
Minyy112 小时前
SpringBoot程序的创建以及特点,配置文件,LogBack记录日志,配置过滤器、拦截器、全局异常
xml·java·spring boot·后端·spring·mybatis·logback
百锦再2 小时前
Java与Kotlin在Android开发中的全面对比分析
android·java·google·kotlin·app·效率·趋势
武昌库里写JAVA3 小时前
39.剖析无处不在的数据结构
java·vue.js·spring boot·课程设计·宠物管理
Nelson_hehe6 小时前
Java基础第四章、面向对象
java·语法基础·面向对象程序设计
Thomas_YXQ6 小时前
Unity3D Lua集成技术指南
java·开发语言·驱动开发·junit·全文检索·lua·unity3d
ShiinaMashirol7 小时前
代码随想录打卡|Day27(合并区间、单调递增的数字、监控二叉树)
java·算法