Grafana 仪表板不适用于 Ingress

Grafana dashboard not working with Ingress

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

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

当我导航至 https://myorg.grafanatest.com URL, I get redirected to 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

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

 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/

您需要从父图表进行编辑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

希望能帮到你

在此处发布解决方案,因为它正在运行。按照上面提到的 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

像这样更新您的 grafana.ini 配置: grafana.ini 大部分可以在 grafana config map

下找到

kubectl get cm

kubectl edit cm map_name

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

这个grafana.ini主要保存在config map或者YAML文件下,可以编辑。 重新应用或编辑规则并在入口创建一个映射,这应该有效。

不要忘记重启您的 pod,以便应用配置映射更改!