2

基本上,我使用提供的 helm chart repo prometheus-communitykube-prometheus-stack安装了 Prometheus-Grafana

# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack

他们工作正常。

但我现在面临的问题是将Thanos与现有的kube-prometheus-stack集成。

我从bitnami helm chart repo安装了 thanos

# helm repo add bitnami https://charts.bitnami.com/bitnami
# helm install thanos bitnami/thanos

我可以加载 Thanos 查询前端 GUI,但那里没有显示任何指标。

灭霸指标 灭霸商店

我现在正在努力让它正常工作。是因为来自完全不同的 helm 图表的 Thanos 和来自另一个 helm 图表的 Prometheus-operator-grafana 堆栈吗?

我在 AWS 上的 Kubernetes 集群是使用 Kops 创建的。而且,我使用 Gitlab 管道和 helm 将应用程序部署到集群。

4

1 回答 1

1

仅仅安装它们是不够的,您需要 .prometheusthanos

下面我将描述获得结果所需执行的所有步骤。

第一个简短的理论。集成它们的最常见方法是使用thanos sidecar容器作为prometheuspod。你可以在这里阅读更多。

这是如何完成的:

(考虑到安装是干净的,可以轻松删除并从头开始重新安装)。

  1. thanos sidecar被添加到pod prometheus

kube-prometheus-stack图:

$ helm pull prometheus-community/kube-prometheus-stack --untar

您将有一个带有图表的文件夹。您需要修改values.yaml,准确地说是两部分:

# Enable thanosService
prometheus:
  thanosService:
    enabled: true # by default it's set to false

# Add spec for thanos sidecar
prometheus:
  prometheusSpec:
    thanos:
      image: "quay.io/thanos/thanos:v0.24.0"
      version: "v0.24.0"

请记住,此功能仍处于试验阶段:

## This section is experimental, it may change significantly without deprecation notice in any release.
## This is experimental and may change significantly without backward compatibility in any release.
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#thanosspec

完成后,prometheus使用edited 安装图表values.yaml

$ helm install prometheus . -n prometheus --create-namespace # installed in prometheus namespace

并检查 sidecar 是否已部署:

$ kubectl get pods -n prometheus | grep prometheus-0
prometheus-prometheus-kube-prometheus-prometheus-0       3/3     Running   0          67s

它应该运行 3 个容器(默认为 2 个)。kubectl describe您可以使用命令更详细地检查它。

  1. 设置thanos图表并部署它。

thanos图:

$ helm pull bitnami/thanos --untar

编辑values.yaml

query:
  dnsDiscovery:
    enabled: true
    sidecarsService: "prometheus-kube-prometheus-thanos-discovery" # service which was created before
    sidecarsNamespace: "prometheus" # namespace where prometheus is deployed

保存并安装此图表已编辑values.yaml

$ helm install thanos . -n thanos --create-namespace

检查它是否有效:

$ kubectl logs thanos-query-xxxxxxxxx-yyyyy -n thanos

我们对这一行感兴趣:

level=info ts=2022-02-24T15:32:41.418475238Z caller=endpointset.go:349 component=endpointset msg="adding new sidecar with [storeAPI rulesAPI exemplarsAPI targetsAPI MetricMetadataAPI]" address=10.44.1.213:10901 extLset="{prometheus=\"prometheus/prometheus-kube-prometheus-prometheus\", prometheus_replica=\"prometheus-prometheus-kube-prometheus-prometheus-0\"}"
  1. 现在转到 UI 并查看可用的指标:

在此处输入图像描述

好文章值得阅读:

于 2022-02-24T15:40:36.560 回答