监控 Apiserver

监控 Apiserver,第1张

监控 Apiserver

apiserver 作为 Kubernetes 最核心的组件,当然他的监控也是非常有必要的,对于 apiserver 的监控我们可以直接通过 kubernetes 的 Service 来获取,如下这个 Service 就是k8s集群apiserver 在集群内部的 Service 地址,想要自动发现 Service 类型的服务,需要用到 role 为 Endpoints 的自动发现方式,在 Prometheus配置中添加上一个 Endpoints 类型的服务的监控任务即可:

$ kubectl get svc
NAME           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes     ClusterIP   172.20.0.1              443/TCP          67d

添加自动发现抓取任务:role 为 Endpoints 的 kubernetes_sd_configs,然后更新配置:

- job_name: "apiservers"
  kubernetes_sd_configs:
    - role: endpoints

更新完成后,去查看 Prometheus 的 Dashboard 的 target 页面:

可以看到apiservers下面出现了很多实例,因为这里使用Endpoints服务发现方式,Prometheus把所有的Endpoints服务都抓取过来了,但是我们只需要default这命名空间个下名为kubernetes的Service服务,这里就需要用到relabel_configs 的keep功能,把符合我们要求的给保留下来,可以根据对应的__meta_kubernetes_namespace和__meta_kubernetes_service_name这两个元数据来进行relabel,另外由于kubernetes这个service服务对应的端口是443,所以需要使用https的协议,更改Prometheus配置如下:

    - job_name: "apiservers"
      kubernetes_sd_configs:
       - role: endpoints
      scheme: https
      tls_config:
       ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
      bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
      relabel_configs:
       - action: keep
         source_labels:
           [
             __meta_kubernetes_namespace,
             __meta_kubernetes_service_name,
           ]
         regex: default;kubernetes

更新配置后,去查看 Prometheus 的 Dashboard 的 target 路径,已成功抓取到指标:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5718192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存