devops icon indicating copy to clipboard operation
devops copied to clipboard

k8s 用promethues 采集k8s 数据指标的方法 , Kubernetes服务发现配置有哪几种,对应的原理是什么

Open heidsoft opened this issue 2 years ago • 0 comments

Prometheus对Kubernetes提供了丰富的服务发现选项。以下是几种常见的服务发现配置和它们的工作原理:

  1. role: node:这个角色会发现Kubernetes集群中所有的节点,并将每个节点作为一个单独的目标。这些目标的地址将会默认为Kubernetes API到节点的代理URL。通常,我们可以通过这个角色获取到节点级别的指标,比如CPU、内存使用情况等。

  2. role: service:这个角色会发现所有的Kubernetes服务,并将每个服务作为一个单独的目标。这些目标的地址将会默认为服务的ClusterIP和端口。通常,我们可以通过这个角色获取到服务级别的指标,比如服务的请求量、错误率等。

  3. role: pod:这个角色会发现所有的Kubernetes Pod,并将每个Pod作为一个单独的目标。这些目标的地址将会默认为Pod的IP和端口。通常,我们可以通过这个角色获取到Pod级别的指标,比如Pod的CPU、内存使用情况,以及Pod内部容器的各种运行指标。

  4. role: endpoint:这个角色会发现所有的Kubernetes Endpoints,并将每个Endpoints里的每个地址作为一个单独的目标。这些目标的地址将会默认为Endpoints里地址的IP和端口。这个角色通常用于获取更细粒度的指标,比如单个Pod的网络流量等。

  5. role: ingress:这个角色会发现所有的Kubernetes Ingress,并将每个Ingress的每个路径作为一个单独的目标。这些目标的地址将会默认为Ingress Controller的地址和端口。这个角色通常用于获取Ingress级别的指标,比如请求量、错误率等。

这些服务发现配置都基于Kubernetes API,Prometheus会定期从Kubernetes API获取这些信息,并且根据这些信息更新监控目标列表。

heidsoft avatar Oct 16 '23 10:10 heidsoft