簡體   English   中英

普羅米修斯汽車發現K8s

[英]Prometheus auto discovery K8s

有人可以指導K8的自動發現配置。 Prometheus服務器位於群集之外。 我嘗試了使用Kubernetes的服務發現和本討論中提到的人

我還不是K8s的專家,足以解釋這里的所有細節,但從根本上說,完全可以在集群之外運行Prometheus(並且需要冗余的跨集群元監控等)。 參看 http://prometheus.io/docs/operating/configuration/#kubernetes-sd-configurations-kubernetes_sd_config中in_cluster配置選項。 如果你在外面運行它,你需要跳過證書箍。

所以,我做了一個簡單的配置

  - job_name: 'kubernetes'

    kubernetes_sd_configs:
      -
        # The API server addresses. In a cluster this will normally be
        # `https://kubernetes.default.svc`. Supports multiple HA API servers.
        api_servers:
          - https://xxx.xx.xx.xx

        # Run in cluster. This will use the automounted CA certificate and bearer
        # token file at /var/run/secrets/kubernetes.io/serviceaccount/ in the pod.
        in_cluster: false

        # Optional HTTP basic authentication information.
        basic_auth:
        username: prometheus
        password: secret

        # Retry interval between watches if they disconnect.
        retry_interval: 5s

unknown fields in kubernetes_sd_config: api_servers, in_cluster, retry_interval"獲取unknown fields in kubernetes_sd_config: api_servers, in_cluster, retry_interval"或其他一些縮進錯誤

示例配置中 ,他們提到了ca_file: . 如何從K8s獲取該證書文件或有沒有辦法指定K8s config文件(〜/ .kube / config)

通過挖掘我發現的源代碼,如果配置中沒有提供api_server ,那么Prometheus總是使用in cluster config( discovery/kubernetes/kubernetes.go#L90-L96 )。

不知何故, 文檔沒有說Kubernetes配置參數,但源代碼確實如此( config/config.go#L1026-L1037 )。 因此,有沒有命名列表api_servers ,但單一的參數命名api_server

所以你的配置應該是這樣的(未經測試):

  - job_name: 'kubernetes'

    kubernetes_sd_configs:
      -
        # The API server addresses. In a cluster this will normally be
        # `https://kubernetes.default.svc`. Supports multiple HA API servers.
        api_server: https://xxx.xx.xx.xx

        # Optional HTTP basic authentication information.
        basic_auth:
          username: prometheus
          password: secret

        # specify the CA
        tls_config:
          ca_file: /path/to/ca.crt
          ## If the actual CA file isn't available you need to disable verification:
          # insecure_skip_verify: true

我不知道retry_interval參數來自哪里,但AFAIK這不是Kubernetes配置參數,它也不是Prometheus配置的一部分。

在@svenwltr的幫助下,我創建了docker image,我們可以在K8s集群中啟動它。 檢查我的回購

如何檢索該文件取決於您的群集設置

如何從K8s獲取該證書文件

默認情況下,kubernetes將客戶端CA證書文件存儲在/etc/kubernetes/pki/ca.crt以及/var/run/secrets/kubernetes.io/serviceaccount/ca.crt中的kubeconfig使用的kubeconfig

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM