【发布时间】:2020-10-05 08:01:51
【问题描述】:
我需要抓取在 pod 中运行的 Prometheus 导出器。它在端口 9098 上运行,导出器工作正常,我可以从运行它的主机手动 scrape 它。问题在于入口。我试图让入口允许外部抓取端口 9098(它是 http 和 TCP)。这是我的入口 yaml。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/balance-algorithm: roundrobin
ingress.kubernetes.io/maxconn-server: "10"
ingress.kubernetes.io/ssl-redirect: "false"
name: ingress-ecobee-exporter
namespace: monitoring
spec:
rules:
- host: mysupercool.domain.name
http:
paths:
- path: /
backend:
serviceName: ecobee-exporter-service
servicePort: 9098
我已指定端口 9098 在我的 haproxy-ingress.yaml 的容器/端口部分中工作。我可以在 haproxy 统计页面中看到“负载均衡器”,但主机从不监听端口 9098 来重定向流量。
谢谢, 肖恩
【问题讨论】:
-
您的意思是 haproxy 本身正在监听 9098?你应该改用tcp-service。否则,您可以使用
mysupercool.domain.name:80/443haproxy 正在侦听并知道如何将请求发送到您的后端。 -
我将它添加到我的 tcp-services 中(我已经为 memcached 准备好了它)。我只是假设 TCP 服务用于非 http/https 服务。所以我不需要入口文件,它直接转发到服务。
-
tcp在 haproxy 角度并监听任意端口。由于 http 通过 tcp 工作,因此您也可以使用它来公开 http 服务。
标签: kubernetes haproxy-ingress