k8s 用promethues 采集k8s 数据指标的方法 , Kubernetes服务发现配置有哪几种,对应的原理是什么
Prometheus对Kubernetes提供了丰富的服务发现选项。以下是几种常见的服务发现配置和它们的工作原理:
-
role: node:这个角色会发现Kubernetes集群中所有的节点,并将每个节点作为一个单独的目标。这些目标的地址将会默认为Kubernetes API到节点的代理URL。通常,我们可以通过这个角色获取到节点级别的指标,比如CPU、内存使用情况等。 -
role: service:这个角色会发现所有的Kubernetes服务,并将每个服务作为一个单独的目标。这些目标的地址将会默认为服务的ClusterIP和端口。通常,我们可以通过这个角色获取到服务级别的指标,比如服务的请求量、错误率等。 -
role: pod:这个角色会发现所有的Kubernetes Pod,并将每个Pod作为一个单独的目标。这些目标的地址将会默认为Pod的IP和端口。通常,我们可以通过这个角色获取到Pod级别的指标,比如Pod的CPU、内存使用情况,以及Pod内部容器的各种运行指标。 -
role: endpoint:这个角色会发现所有的Kubernetes Endpoints,并将每个Endpoints里的每个地址作为一个单独的目标。这些目标的地址将会默认为Endpoints里地址的IP和端口。这个角色通常用于获取更细粒度的指标,比如单个Pod的网络流量等。 -
role: ingress:这个角色会发现所有的Kubernetes Ingress,并将每个Ingress的每个路径作为一个单独的目标。这些目标的地址将会默认为Ingress Controller的地址和端口。这个角色通常用于获取Ingress级别的指标,比如请求量、错误率等。
这些服务发现配置都基于Kubernetes API,Prometheus会定期从Kubernetes API获取这些信息,并且根据这些信息更新监控目标列表。