Imr*_*han 3 kubernetes prometheus kubernetes-ingress
我已经在 kubernetes(1.17.3) 上部署了 prometheus 服务器(2.13.1),我可以在http://my.prom.com:9090
但我想访问它,http://my.prom.com:9090/prometheus所以我添加了以下入口规则,但它不起作用
第一次尝试:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/app-root: /prometheus
name: approot
namespace: default
spec:
rules:
- host: my.prom.com
http:
paths:
- backend:
serviceName: prometheus-svc
servicePort: 9090
path: /
Run Code Online (Sandbox Code Playgroud)
这会导致 404 错误
第二次尝试:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
rules:
- host: my.prom.com
http:
paths:
- backend:
serviceName: prometheus-svc
servicePort: 9090
path: /prometheus(/|$)(.*)
Run Code Online (Sandbox Code Playgroud)
现在,当我在浏览器中访问 URL 时,http://my.prom.com:9090/prometheus它会更改为http://my.prom.com:9090/graph并显示 404 错误
普罗米修斯不知道你想要实现什么,这就是它重定向到未知目的地的原因。
突出显示第二个链接,您必须将- "--web.route-prefix=/"和包含- "--web.external-url=http://my.prom.com:9090/prometheus"在您的普罗米修斯部署中。
然后我必须修改 prometheus 部署以接受新 路径 ( /prom ) 上的流量。使用基本身份验证确保 Prometheus API 和 UI 端点安全文档中对此进行了介绍 :
在你的环境中它应该看起来像这样:
> grep web deploy.yaml
- "--web.enable-lifecycle"
- "--web.route-prefix=/"
- "--web.external-url=http://my.prom.com:9090/prometheus"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4652 次 |
| 最近记录: |