【发布时间】:2021-10-11 17:43:43
【问题描述】:
我正在尝试通过将 http“metrics”服务(与我的主要服务在同一个 pod 上运行)公开为 k8s 端点来向 Prometheus 报告自定义指标。但是从 prometheus 的 pod 到我的指标端点的连接尝试被拒绝(即使我可以使用 wget:8010 从 prometheus pod 访问我的主要服务)。似乎我已经暴露了主要服务端口,但是有什么东西阻止了同一个 pod 上我的指标端口的流量?帮助!
kubectl get svc mysvc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mysvc LoadBalancer 10.106.36.79 localhost 8767:31285/TCP,8010:30953/TCP 3m23s
kubectl describe ep mysvc
Name: mysvc
Namespace: default
Labels: app.kubernetes.io/managed-by=Helm
Annotations: endpoints.kubernetes.io/last-change-trigger-time: 2021-08-06T22:37:54Z
Subsets:
Addresses: 10.1.18.170
NotReadyAddresses: <none>
Ports:
Name Port Protocol
---- ---- --------
metrics 8767 TCP
mysvcport 8010 TCP
Events: <none>
Prometheus 尝试从“metrics”端点获取指标,但报告: “获取“http://10.1.18.170:8767/metrics”:拨打 tcp 10.1.18.170:8767:连接:连接被拒绝”
我可以确认无法从 prometheus pod 访问 mysvc:8767,但 mysvc:8010 可以!
在 mysvc 的 pod 上,我可以通过 localhost:8767 访问我的指标服务,但不能通过 mysvc:8767。
【问题讨论】:
-
你能给我们看看你的 pod 吗?我觉得你提到
On mysvc's pod, I can reach my metrics service via localhost:8767很有趣,我不认为localhost会路由到另一个容器。您能否验证在您的指标容器中执行curl localhost:8767/metrics时获得了有效结果?
标签: kubernetes prometheus kubernetes-helm metrics