问题描述
我已经安装了 kubernetes metrics-server https://github.com/kubernetes-sigs/metrics-server 它工作正常,我可以使用“kubectl top pods”和“kubectl top nodes”,现在我想将指标抓取到 kubernetes 集群外的 prometheus 以显示在Grafana,我尝试过的是
- 使用 NodePort 公开指标服务器服务但不工作,出现一些 https 问题
- 从 https://github.com/ghouscht/metrics-server-exporter/ 安装 metrics-server-exporter(这个只抓取了几个指标,我在 grafana 上看不到它)和 https://github.com/grupozap/metrics-server-exporter/(这个不是 http 应用程序,所以我不能公开为NodePort 服务)
我该怎么办?
解决方法
试试这些然后告诉我。
1.首先你应该运行 kube-state-metrics 来收集所有 kubernetes 指标。
2.在 kube-state-metrics 上使用 pod 注释,公开指标,例如
prometheus.io/scrape: 'true'
prometheus.io/port: 'port'
prometheus.io/path: '/metrics'
prometheus.io/scheme: 'http'
这应该从 pod 级别公开您的指标。要检查这一点,您可以执行到 pod 并在端口上执行 curl 请求,后跟路径
3.现在运行一个 prometheus 代理,它可以从这个端口抓取指标并将其发送到后端数据库服务器
4.在你的grafana代理中配置prometheus ds就可以了
,您可以使用 helm 安装 kube-prometheus-stack。
它将安装 Node Exporter
、kube-state-metrics
和 prometheus operator
以及其他依赖项,以允许您监控集群。
您可以使用以下方法安装它:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add stable https://charts.helm.sh/stable
helm repo update
helm install [RELEASE_NAME] prometheus-community/kube-prometheus-stack
安装后,您可以访问您的 grafana URL 并配置仪表板。
您可以在grafana中添加prometheus作为数据源[Configuration
-> Data Source
](prometheus URL应该默认设置)并导入kubernetes dashboard以显示有关容器运行的汇总指标在 Kubernetes 节点上。