Prometheus找不到自托管Kubernetes集群的Apiserver
Prometheus cannot find Apiserver of self-hosted Kubernetes cluster
我设置了一个 Kubernetes 集群。 Apiserver 在主机 192.168.0.2 上启动,我使用自签名证书和静态令牌作为身份验证。另外2个节点的ip是192.168.0.3和192.168.0.4
然后我创建了一个prometheus deployment,配置是this。在prometheus dashboard中,两个节点和prometheus self显示为"UP"。但是 apiserver 显示 "DOWN",原因是 "context deadline exceeded"。
kubernetes-apiservers
Endpoint State Labels Last Scrape Error
https://192.168.0.2:443/metrics
DOWN instance="192.168.0.2:443" 55.979s ago context deadline exceeded
我尝试使用 ca 证书和令牌从节点服务器卷曲地址 (https://192.168.0.2:443/metrics)。结果没问题。
顺便说一句,我通过 hyperkube apiserver
命令行而不是 kubelet
设置 apiserver。这是问题吗?我应该在哪里查看?
在prometheus日志中,我只找到了这个相关的
time="2017-01-13T10:51:28Z" level=debug msg="endpoints update" kubernetes_sd=endpoint source="endpoints.go:77" tg="&config.TargetGroup{Targets:[]model.LabelSet{model.LabelSet{\"__meta_kubernetes_endpoint_port_protocol\":\"TCP\", \"__meta_kubernetes_endpoint_ready\":\"true\", \"__address__\":\"192.168.0.2:443\", \"__meta_kubernetes_endpoint_port_name\":\"https\"}}, Labels:model.LabelSet{\"__meta_kubernetes_service_label_provider\":\"kubernetes\", \"__meta_kubernetes_namespace\":\"default\", \"__meta_kubernetes_endpoints_name\":\"kubernetes\", \"__meta_kubernetes_service_name\":\"kubernetes\", \"__meta_kubernetes_service_label_component\":\"apiserver\"}, Source:\"endpoints/default/kubernetes\"}"
更新:
原因是我没有在master节点上设置calico。现在可以使用了。
这听起来像是网络问题,因为请求超时。您可以从 Prometheus 容器内部访问该端点吗?
我设置了一个 Kubernetes 集群。 Apiserver 在主机 192.168.0.2 上启动,我使用自签名证书和静态令牌作为身份验证。另外2个节点的ip是192.168.0.3和192.168.0.4
然后我创建了一个prometheus deployment,配置是this。在prometheus dashboard中,两个节点和prometheus self显示为"UP"。但是 apiserver 显示 "DOWN",原因是 "context deadline exceeded"。
kubernetes-apiservers
Endpoint State Labels Last Scrape Error
https://192.168.0.2:443/metrics
DOWN instance="192.168.0.2:443" 55.979s ago context deadline exceeded
我尝试使用 ca 证书和令牌从节点服务器卷曲地址 (https://192.168.0.2:443/metrics)。结果没问题。
顺便说一句,我通过 hyperkube apiserver
命令行而不是 kubelet
设置 apiserver。这是问题吗?我应该在哪里查看?
在prometheus日志中,我只找到了这个相关的
time="2017-01-13T10:51:28Z" level=debug msg="endpoints update" kubernetes_sd=endpoint source="endpoints.go:77" tg="&config.TargetGroup{Targets:[]model.LabelSet{model.LabelSet{\"__meta_kubernetes_endpoint_port_protocol\":\"TCP\", \"__meta_kubernetes_endpoint_ready\":\"true\", \"__address__\":\"192.168.0.2:443\", \"__meta_kubernetes_endpoint_port_name\":\"https\"}}, Labels:model.LabelSet{\"__meta_kubernetes_service_label_provider\":\"kubernetes\", \"__meta_kubernetes_namespace\":\"default\", \"__meta_kubernetes_endpoints_name\":\"kubernetes\", \"__meta_kubernetes_service_name\":\"kubernetes\", \"__meta_kubernetes_service_label_component\":\"apiserver\"}, Source:\"endpoints/default/kubernetes\"}"
更新:
原因是我没有在master节点上设置calico。现在可以使用了。
这听起来像是网络问题,因为请求超时。您可以从 Prometheus 容器内部访问该端点吗?