服务器向 HTTPS 客户端提供 HTTP 响应

5 kubernetes prometheus

我正在尝试设置 prometheus 来监控我的 kubernetes 集群 [1 master, 7 minions ] 的节点、服务和端点。为此,我有一个非常基本的 promethus.yml 文件:

scrape_configs:
- job_name: 'kubernetes-pods'
  tls_config:
    insecure_skip_verify: true
  kubernetes_sd_configs:
  - role: pod
Run Code Online (Sandbox Code Playgroud)

在启动 Prometheus 应用程序之前,我运行了以下 2 个命令:

export KUBERNETES_SERVICE_HOST=172.9.25.6
export KUBERNETES_SERVICE_PORT=8080
Run Code Online (Sandbox Code Playgroud)

我可以使用访问 Kubernetes API 服务器 http://172.9.25.6:8080

连接是通过 http 而不是 https 形成的。

现在,当我启动应用程序时,出现以下错误:

level=info ts=2017-12-13T20:39:05.312987614Z caller=kubernetes.go:100 component="target manager" discovery=k8s msg="Using pod service account via in-cluster config"
level=info ts=2017-12-13T20:39:05.313443232Z caller=main.go:371 msg="Server is ready to receive requests."
level=error ts=2017-12-13T20:39:05.316618074Z caller=main.go:211 component=k8s_client_runtime err="github.com/prometheus/prometheus/discovery/kubernetes/kubernetes.go:205: Failed to list *v1.Pod: Get https://172.9.25.6:8080/api/v1/pods?resourceVersion=0: http: server gave HTTP response to HTTPS client"
Run Code Online (Sandbox Code Playgroud)

我也尝试添加scheme: http到我的prometheus.yml配置中,但它不起作用。如何配置客户端以接受 HTTP 响应?

val*_*ala 0

尝试在kubernetes_sd_configsapi_server内部指定:

scrape_configs:
- job_name: 'kubernetes-pods'
  kubernetes_sd_configs:
  - role: pod
    api_server: http://172.9.25.6:8080
Run Code Online (Sandbox Code Playgroud)