在Prometheus-operator中,我希望将kube-state-metrics副本增加到2。如果我增加副本,并且默认的服务发现角色是endpoints,则Prometheus将抓取每个pod,因此我将抓取所有指标两次,这将导致多对多问题,这是一种浪费。
我遇到的问题是一个节点宕机了,上面有kube-state-metrics等。直到安排了一个新的pod,我才知道我的集群上发生了什么。拥有冗余的kube-state-metrics对我来说很重要。
如何将kube-state-metrics的kubernetes_sd_configs角色配置为service,使其将服务作为负载均衡器,而不是服务中的每个pod?或者-如何扩展kube-state-metrics pods (不分片)?
当前配置:
- job_name: monitoring/prometheus-operator-kube-state-metrics/0
kubernetes_sd_configs:
- role: endpoints我想要的:
- job_name: monitoring/prometheus-operator-kube-state-metrics/0
kubernetes_sd_configs:
- role: service发布于 2020-11-10 14:27:56
可以,停那儿吧。
虽然抓取endpoints的工作是过滤包含注释prometheus.io/scrape: "true"的服务,但是您可以选择使用不同的注释来抓取服务本身。
其中,您有一个像这样的作业,它逐个抓取每个端点:
- job_name: kubernetes-endpoints
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
action: keep
regex: "true"您可以添加另一个作业,该作业只会抓取服务作为端点:
- job_name: kubernetes-services
params:
module: [http_2xx]
kubernetes_sd_configs:
- role: service
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_probe]
action: keep
regex: "true"然后只需确保您在服务上设置了正确的注释,如下所示:
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/probe: "true"https://stackoverflow.com/questions/64413917
复制相似问题