如何解决使用Helm设置Prometheus Ingress
我已经为prometheus-operator部署了头盔图,目前所有服务都已启动并正在运行。
我已经有了一个入口控制器,它正在完美地路由我们的内部服务。
但是现在我正在为Prometheus,Grafana和AlertManager创建入口,并且无法按预期工作。
我的Prometheus Ingress YAML-
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: prom
namespace: monitoring
spec:
rules:
- host: abc.xyz.com
http:
paths:
- backend:
serviceName: my-prom-check-prometheus-o-prometheus
servicePort: 9090
path: /prometheus
输出--未找到 404
但是对于Grafana来说,它不会给出404,而是会给出Invalo键错误-
请对此提出建议。我还没有修改values.yaml并直接安装它。
解决方法
Prometheus不知道您要实现的目标,这就是为什么它重定向到未知目标的原因,您会收到404页面未找到的错误消息,因为到达目标Web服务器的http请求声明了{{1 }}目录,而不是实际为其提供服务的/prometheus
。
据我所知,您必须告诉Prometheus接受新路径上的流量。我认为,如果您将路径从/
更改为/prometheus
,则应该可以。
如果要在/ prometheus上使用它,则必须正确配置prometheus运算符图表值,我假设它们是externalUrl和routePrefix。
prometheus.prometheusSpec.externalUrl-> Prometheus实例可用的外部URL。这对于生成正确的URL是必需的。如果未从DNS名称的根目录提供Prometheus,则这是必需的。
prometheus.prometheusSpec.routePrefix->路由前缀Prometheus注册其HTTP处理程序。如果使用ExternalURL并且代理正在重写请求的HTTP路由,并且实际的ExternalURL仍然为true,但是服务器使用不同的路由前缀来提供请求,则这很有用。例如,与kubectl代理一起使用。 默认值为/
与此相关的github issue
OR
配置nginx以便从/
重写为/prometheus
。
以下入口定义应该可以解决您的问题
/
上面使用的重写将确保原始访问路径/ prometheus在到达目标Pod之前被重写为/。
关于tutorial。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。