Prometheus kuberentes-pods 获取"https:// xx.xx.xx:443 /metrics":拨打 tcp xx.xx.xx:443:连接:连接被拒绝



我已经使用[this][1]在一个kubernetes集群节点上配置了Prometheus。之后,我添加了以下prometheus.yml文件。我可以列出节点和apiserver,但对于pod,所有pod都会显示并出错:

Get "https:// xx.xx.xx:443 /metrics": dial tcp xx.xx.xx:443: connect: connection refused and for some pods the status is unknown. 

有人能指出我在这里做错了什么吗?

Cat prometheus.yml

global:
scrape_interval: 1m

scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']

# metrics for default/kubernetes api's from the kubernetes master
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
bearer_token_file: /dfgdjk/token
api_server: https://masterapi.com:3343
tls_config:
insecure_skip_verify: true
tls_config:
insecure_skip_verify: true
bearer_token_file: /dfgdjk/token
scheme: https
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name

# metrics for default/kubernetes api's from the kubernetes master
- job_name: 'kubernetes-apiservers'
kubernetes_sd_configs:
- role: endpoints
api_server: https://masterapi.com:3343
bearer_token_file: /dfgdjk/token
tls_config:
insecure_skip_verify: true
tls_config:
insecure_skip_verify: true
bearer_token_file: /dfgdjk/token
scheme: https
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https][1]


[1]: https://devopscube.com/install-configure-prometheus-linux/

如果没有kubernetes集群中的任何prometheus组件,就不可能将度量值获取到外部prometheus服务器。之所以会发生这种情况,是因为集群网络与主机的网络隔离,并且不可能直接从集群外部的pod中获取度量。

请参阅从k8s集群外部使用prometheus监控kubernetes GitHub问题

可以选择:

  • 使用prometheus operator或手动在集群内安装prometheus-示例
  • 使用代理解决方案,例如来自GitHub上同一线程的这个-k8s prometheus代理
  • 除了集群中安装的prometheus之外,还可以在federation中安装外部prometheu斯,这样所有日志都可以保存在集群之外。请参阅普罗米修斯联盟

同样重要的是,kube状态度量也应该安装在kubernetes集群中。如何设置。

编辑:您还可以参考另一个SO问题/答案,该问题/答案确认只有通过其他步骤或OP才能由另一个代理解决方案解决。

相关内容

最新更新