我想通过HTTPS通过Internet到达Prometheus Operator。
我通过HELM部署了Prometheus,并提供了以下custom-vault.yml
图表版本:
kube-prometheus-0.0.105
nginx-ingress-0.31.0
部署:
helm install coreos/kube-prometheus --name kube-prometheus --set global.rbacEnable=false \
--namespace monitoring -f custom-vault.yml
我期望的结果: 我想通过URL浏览Prometheus https://example.com/prometheus
我的custom-vault.yml
prometheus:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
tls:
- secretName: tls-secret
hosts:
- example.com
hosts:
- example.com
paths:
- /
#prometheusSpec:
#externalUrl: https://example.com/prometheus
会发生什么?
我可以到达https://example.com/graph,但由于路径错误而无法加载CSS文件。
当我尝试配置https://example.com/prometheus/graph时CSS也无法正常工作,并且当我单击“警报前端”时,我将重定向到https://example.com/alerts,并收到“默认后端404”错误。
>其他用于服务/入口的路线正在运行 Prometheus也可以正常工作-当我将Port暴露给localhost时,Prometheus会正确显示。
答案 0 :(得分:0)
您的网址是:“ https://example.com/prometheus”,而您的路径是“ /”
这说明了为什么您可能拥有一些有效的链接,而没有其他链接(CSS,索引...)。
如果我没记错的话,您应该这样创建路径:
paths:
- /prometheus/*
这就是说,结合您的重写目标使用/ prometheus作为其根URL并接受所有子URL。重写将在pod内重定向到/。
答案 1 :(得分:0)
更改部分
paths:
- /
到
paths:
- prometheus:
path: /prometheus
但是您应该记住,通过Ingress对象公开Prometheus Web UI需要运行Ingress controller。
您可以在这里找到更多信息:operator-prometheus-coreos。
答案 2 :(得分:0)
感谢您的投入。你帮我解决了问题。并非直接,但它给了我新的视角。
我如何解决此问题: 我将部署从coreos / kube-prometheus更改为stable / prometheus-operator
当前版本为6.11 我无法直接安装6.11-我需要安装6.0.0并升级到6.11
还提供了一个新的custom-value.yaml
通过此设置,它可以完美运行!
custom-value.yaml
prometheus:
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/whitelist-source-range: "{my_whitelisted_public_ip}"
nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
tls:
- secretName: tls-secret
hosts:
- example.com
hosts:
- example.com
paths:
- /
prometheusSpec:
externalUrl: http://example.com/prometheus
routePrefix : prometheus/
谢谢。
BR