普罗米修斯操作员暴露入口路径

时间:2019-10-02 13:29:03

标签: kubernetes prometheus kubernetes-ingress azure-aks nginx-ingress

我想通过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会正确显示。

3 个答案:

答案 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