自建prometheus监控腾讯云k8s集群

自建prometheus监控腾讯云k8s集群

使用场景

k8s集群(腾讯云容器服务)

promtheus (外部自建服务)

腾讯云提供了容器内部自建 Prometheus 监控 TKE 集群的文档,参考

当前的环境promethues建在k8S外的云服务器上,与上面链接文档略有差异,以下给出集群外自建prometheus监控腾讯云k8s集群正确的步骤。

配置步骤

创建serviceAccount

复制代码
 kubectl create sa prometheus-sa

创建ClusterRole

vi ClusterRole.yml

复制代码
kind: ClusterRole
metadata:
  name: prometheus-kubelet-ro
rules:
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list", "watch"]
- apiGroups: [""]
  resources: ["nodes/metrics"]
  verbs: ["get"]
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]

kubectl apply -f ClusterRole.yml

创建clusterrolebinding

复制代码
kubectl create clusterrolebinding prometheus-sa-binding   --clusterrole=prometheus-kubelet-ro   --serviceaccount=default:prometheus-sa

验证权限

复制代码
kubectl auth can-i get nodes/metrics --as=system:serviceaccount:default:prometheus-sa
kubectl auth can-i get nodes --as=system:serviceaccount:default:prometheus-sa

生成token

复制代码
#替换成正确目录
kubectl -n default get secret prometheus-sa-token -o jsonpath='{.data.token}' | base64 -d > $prometheus_dir/secret/kube-token

prometheus配置

复制代码
  - job_name: 'tke-cadvisor'
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: /metrics/cadvisor
    scheme: https
    
    kubernetes_sd_configs:
      - role: node
        api_server: "https://<apiserver>:<port>"
        ##针对sd_服务的tls配置
        bearer_token_file: /etc/prometheus/secrets/kube-token
        #针对sd_服务的tls配置
        tls_config:
          insecure_skip_verify: true
    # scrape的token配置
    bearer_token_file: /etc/prometheus/secrets/kube-token    
    # scrape的tls配置
    tls_config:
      insecure_skip_verify: true
    
    relabel_configs:
      - source_labels: [__meta_kubernetes_node_label_node_kubernetes_io_instance_type]
        regex: eklet
        action: drop
      - source_labels: [__meta_kubernetes_node_address_InternalIP]
        target_label: __address__
        replacement: "${1}:10250"
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
        
       
       
  - job_name: 'tke-node'
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: /metrics
    scheme: http

    kubernetes_sd_configs:
      - role: node
        api_server: "https://<apiserver>:<port>"
        bearer_token_file: /etc/prometheus/secrets/kube-token
        tls_config:
          insecure_skip_verify: true
    bearer_token_file: /etc/prometheus/secrets/kube-token


    relabel_configs:
      - source_labels: [__meta_kubernetes_node_label_node_kubernetes_io_instance_type]
        regex: eklet
        action: drop
      - source_labels: [__meta_kubernetes_node_address_InternalIP]
        target_label: __address__
        replacement: "${1}:9100"
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)

!NOTE

1.TKE 节点上的 kubelet 证书是自签的,需要忽略证书校验,所以 insecure_skip_verify 要置为 true。

2.kubernetes_sd_configs:job级别配置都需要添加bearer_token_fileinsecure_skip_verify

kubernetes_sd_configs不添加会导致sd不能正常发现节点 kubernetes,job配置不添加会导致prometheus抓取/metrics/cadvisor返回401未授权错误

相关推荐
OpenClawID11 小时前
2026年怎么安装OpenClaw?腾讯云1分钟喂奶级流程+大模型APIKey配置、Skill集成指南
云计算·腾讯云
Dontla1 天前
高基数(High Cardinality)问题介绍(Prometheus、高基数字段、低基数字段)
前端·数据库·prometheus
小义_1 天前
【Kubernetes】(五) pod2
linux·云原生·容器·kubernetes
雨奔1 天前
Kubernetes 对象标识详解:Name、UID、Label
云原生·容器·kubernetes
川石课堂软件测试1 天前
requests接口自动化测试
数据库·python·功能测试·测试工具·单元测试·grafana·prometheus
SL-staff1 天前
2026企业文档选型白皮书:功能、技术栈、私有化部署与采购建议
spring cloud·docker·微服务·kubernetes·开源·私有化部署·企业文档
johnny2331 天前
腾讯云COS分片上传完整实现
腾讯云
cool32001 天前
4D实验八:Dubbo微服务 + 注册中心
前端·kubernetes
Devin~Y1 天前
互联网大厂Java面试:Spring Boot/Redis/Kafka/K8s 可观测 + RAG(向量检索/Agent)三轮追问实录
java·spring boot·redis·kafka·kubernetes·spring mvc·webflux
野猪佩挤2 天前
openebs动态存储使用
kubernetes