• 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

    1. scrape_configs: #在该配置项下写入以下内容
    2. - job_name: k8s-cadvisor
    3. honor_timestamps: true
    4. metrics_path: /metrics/cadvisor
    5. scheme: https
    6. kubernetes_sd_configs: # kubernetes 自动发现
    7. - api_server: https://10.1.60.119:6443 # apiserver 地址
    8. role: node # node 类型的自动发现
    9. bearer_token_file: ./k8s.token
    10. tls_config:
    11. ca_file: ./ca.crt
    12. insecure_skip_verify: true
    13. bearer_token_file: ./k8s.token
    14. tls_config:
    15. ca_file: ./ca.crt
    16. insecure_skip_verify: true
    17. relabel_configs:
    18. - action: labelmap
    19. regex: __meta_kubernetes_node_label_(.+)
    20. metric_relabel_configs:
    21. - source_labels: [instance]
    22. separator: ;
    23. regex: (.+)
    24. target_label: node
    25. replacement: $1
    26. 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

    1. scrape_configs:         #在该配置项下写入以下内容
    2. - job_name: 'k8s-cadvisor'
    3. metrics_path: /metrics/cadvisor
    4. kubernetes_sd_configs:
    5. - role: node
    6. relabel_configs:
    7. - source_labels: [__address__]
    8. regex: '(.*):10250' #获取所有监听10250接口的地址
    9. replacement: '${1}:10255' #将以上所有监听10250的地址,改为监听10255接口
    10. target_label: __address__
    11. action: replace
    12. - action: labelmap
    13. regex: __meta_kubernetes_node_label_(.+)
    14. metric_relabel_configs:
    15. - source_labels: [instance]
    16. separator: ;
    17. regex: (.+)
    18. target_label: node
    19. replacement: $1
    20. action: replace
    21. - source_labels: [pod_name]
    22. separator: ;
    23. regex: (.+)
    24. target_label: pod
    25. replacement: $1
    26. action: replace
    27. - source_labels: [container_name]
    28. separator: ;
    29. regex: (.+)
    30. target_label: container
    31. replacement: $1
    32. action: replace

    重启prometheus服务

    systemctl restart prometheus

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

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

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

  • 相关阅读:
    aosp定制android系统
    深度学习-nlp系列(5)文本实体识别(LSTM)pytorch
    035-第三代软件开发-Qt属性系统
    【scikit-learn基础】--『监督学习』之 决策树分类
    RT-Thread v5.0.2 发布
    Elasticsearch:使用 LangChain 对话链和 OpenAI 的聊天机器人
    vins-course运行
    短视频内容创作:内容发给谁?为什么发?发什么?以什么形式发?
    【Day-30慢就是快】代码随想录-二叉树-找树左下角的值
    PinnedSectionItemDecoration - 一个强大的粘性标签库
  • 原文地址:https://blog.csdn.net/ApexPredator/article/details/133883701