【问题标题】:Grafana dashboard not working with IngressGrafana 仪表板不适用于 Ingress
【发布时间】:2020-10-13 21:49:33
【问题描述】:

我已安装在 kube-prometheus-stack 下方,并在尝试使用 Grafana 仪表板自己的 Ingress URL 访问时出错。我相信我在这里遗漏了一些愚蠢的东西,但找不到任何线索。我看过similar post here 和其他人。

图表:kube-prometheus-stack-9.4.5 应用版本:0.38.1

当我导航到 https://myorg.grafanatest.com URL 时,我被重定向到 https://myorg.grafanatest.com/login 并显示以下消息。

对 grafana/values.yaml 的更改:

grafana.ini:
  server:
  # The full public facing url you use in browser, used for redirects and emails
  root_url: https://myorg.grafanatest.com

进行上述更改后,用于安装 Prometheus-Grafana 算子的 Helm 命令。

 helm install  pg kube-prometheus-stack/ -n monitoring

我在 Grafana pod 内的 grafana.ini 文件中看到以下设置。

[analytics]
check_for_updates = true
[grafana_net]
url = https://grafana.net
[log]
mode = console
[paths]
data = /var/lib/grafana/data
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins
provisioning = /etc/grafana/provisioning
[server]
root_url = https://myorg.grafanatest.com/

【问题讨论】:

    标签: kubernetes prometheus grafana


    【解决方案1】:

    您需要从父图表 values.yaml 进行编辑

    1. 从 kube-prometheus-stack 图表中获取默认 values.yaml,保存到文件中
    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo add stable https://kubernetes-charts.storage.googleapis.com/
    helm repo update
    
    helm show values prometheus-community/kube-prometheus-stack > values.yaml
    
    

    在 values.yaml 文件中,像这样编辑:

    ## Using default values from https://github.com/grafana/helm-charts/blob/main/charts/grafana/values.yaml
    ##
    #### This below line is in 509 line
    grafana:
      enabled: true
      namespaceOverride: ""
    
      ## Deploy default dashboards.
      ##
      defaultDashboardsEnabled: true
    
      adminPassword: prom-operator
    
      ingress:
        ## If true, Grafana Ingress will be created
        ##
        enabled: true
    
        ## Annotations for Grafana Ingress
        ##
        annotations: {}
          # kubernetes.io/ingress.class: nginx
          # kubernetes.io/tls-acme: "true"
    
        ## Labels to be added to the Ingress
        ##
        labels: {}
    
        ## Hostnames.
        ## Must be provided if Ingress is enable.
        ##
        # hosts:
        #   - grafana.domain.com
        hosts:
          - myorg.grafanatest.com
    
        ## Path for grafana ingress
        path: /
    
    • grafana.ingress.enabledtrue
    • grafana.ingress.hosts- myorg.grafanatest.com
    1. 应用它
    helm -n monitoring install -f ./values.yaml kube-prometheus prometheus-community/kube-prometheus-stack
    

    希望能帮到你

    【讨论】:

    • 我按照上面的步骤操作,仍然收到 Grafana URL 的相同消息。我必须为 Grafana 部分添加 rbac: pspUseAppArmor: false 以及入口和主机更改。我也尝试将 ingress 设置为 false,因为我们使用的是 TraefikEE ingress,但没有运气。
    • 已更新 grafani.ini 文件内容,检查是否有任何问题。
    • 如果你使用 kubectl port-forward grafanam di 仪表板错误?
    • 我在这次安装中没有尝试过,但是当我在不同的设置中进行测试时,端口转发确实有效,没有 Ingress。
    【解决方案2】:

    在此处发布解决方案,因为它现在正在运行。按照上面提到的 gumelaragum 的步骤创建 values.yaml 并在其中更新以下值,并将该 values.yaml 传递给 helm install 步骤。不知道为什么不启用 serve_from_sub_path 就不能工作,但它现在可以工作了。请注意,我没有启用 Ingress 部分,因为我已经在安装过程之外创建了 Ingress 路由。

    helm show values prometheus-com/kube-prometheus-stack > custom-values.yaml

    然后通过更改 custom-values.yaml 中的以下值来安装。根据需要更改命名空间。

    helm -n monitoring install -f ./custom-values.yaml pg prometheus-com/kube-prometheus-stack

    grafana:
      enabled: true
      namespaceOverride: ""
      # set pspUseAppArmor to false to fix Grafana pod Init errors
      rbac:
        pspUseAppArmor: false
      grafana.ini:
        server:
          domain: mysb.grafanasite.com
          #root_url: "%(protocol)s://%(domain)s/"
          root_url: https://mysb.grafanasite.com/grafana/
          serve_from_sub_path: true
    
      ## Deploy default dashboards.
      ##
      defaultDashboardsEnabled: true
    
      adminPassword: prom-operator
    
      ingress:
        ## If true, Grafana Ingress will be created
        ##
        enabled: false
    
        ## Annotations for Grafana Ingress
        ##
        annotations: {}
          # kubernetes.io/ingress.class: nginx
          # kubernetes.io/tls-acme: "true"
    
        ## Labels to be added to the Ingress
        ##
        labels: {}
    
        ## Hostnames.
        ## Must be provided if Ingress is enable.
        ##
        # hosts:
        #   - grafana.domain.com
        hosts:
          - mysb.grafanasite.com
    
        ## Path for grafana ingress
        path: /grafana/
    

    我看到相同的值反映在 Grafana 容器装载路径 (/etc/grafana/grafana.ini) 内的 grafana.ini 文件中。

    [analytics]
    check_for_updates = true
    [grafana_net]
    url = https://grafana.net
    [log]
    mode = console
    [paths]
    data = /var/lib/grafana/data
    logs = /var/log/grafana
    plugins = /var/lib/grafana/plugins
    provisioning = /etc/grafana/provisioning
    [server]
    domain = mysb.grafanasite.com
    root_url = https://mysb.grafanasite.com/grafana/
    serve_from_sub_path = true
    

    【讨论】:

      【解决方案3】:

      像这样更新你的 grafana.ini 配置:

        data:
        grafana.ini: |
          [server]
          serve_from_sub_path = true
          domain = dev-ingress-gateway.KKK.com
          root_url = http://dev-ingress-gateway.KKK.com/grafana/
      
      

      这个 grafana.ini 主要保存在 configmap 或 yaml 文件下,可以编辑。 重新应用或编辑规则并在入口中创建映射,这应该可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-09
        • 2019-09-01
        • 1970-01-01
        • 2021-07-11
        • 2015-09-18
        • 2019-02-18
        相关资源
        最近更新 更多