普罗米修斯无法找到自我托管的Kubernetes集群的Apiserver

时间:2017-01-13 10:41:30

标签: kubernetes prometheus

我建立了一个Kubernetes集群。 Apiserver在主机192.168.0.2上启动,我使用自签名证书和静态令牌作为身份验证。其他2个节点的ip是192.168.0.3和192.168.0.4

然后我创建了一个prometheus部署,配置为this。在prometheus仪表板中,两个节点和prometheus self显示为“UP”。然而,apiserver显示为“DOWN”,原因是“超出上下文截止日期”。

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\"}"

更新

原因是我没有在主节点上设置calico。它现在有效。

1 个答案:

答案 0 :(得分:2)

这听起来像是网络问题,因为请求已超时。你能从Prometheus容器里面击中那个终点吗?