用 Helm 在 Kubernetes 上部署 Grafana

Helm 部署 Grafana 到 K8s:grafana chart 安装、持久化配置、数据源与仪表盘的 provisioning、Ingress 暴露与安全注意事项。

最佳实践
用 Helm 在 Kubernetes 上部署 Grafana技术指南封面

Grafana 是 Prometheus 数据可视化的标准搭档。用 Helm 在 K8s 上部署只需几分钟,但持久化和数据源预置这两个生产要点必须一步到位,否则 Pod 重建后仪表盘全丢。

快速安装

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

helm install grafana grafana/grafana -n monitoring --create-namespace

获取初始管理员密码:

kubectl get secret -n monitoring grafana -o jsonpath="{.data.admin-password}" | base64 -d

本地验证:

kubectl port-forward -n monitoring svc/grafana 3000:80
# 浏览器打开 http://localhost:3000,admin + 上面取到的密码

生产配置:values.yaml

# values.yaml
persistence:
  enabled: true          # ← 最重要!默认 false,Pod 一重建数据全丢
  size: 10Gi

adminPassword: "强密码"    # 或用 existingSecret 引用 K8s Secret

# 预置数据源:Prometheus 自动可用
datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
      - name: Prometheus
        type: prometheus
        url: http://prometheus-server.monitoring.svc
        isDefault: true

# 预置仪表盘
dashboardProviders:
  dashboardproviders.yaml:
    apiVersion: 1
    providers:
      - name: default
        folder: ''
        type: file
        options:
          path: /var/lib/grafana/dashboards

dashboards:
  default:
    node-exporter:
      gnetId: 1860       # Node Exporter Full
      datasource: Prometheus
helm upgrade grafana grafana/grafana -n monitoring -f values.yaml

对外暴露:Ingress

ingress:
  enabled: true
  hosts: [grafana.example.com]
  tls:
    - secretName: grafana-tls
      hosts: [grafana.example.com]

安全提醒:Grafana 后台能看到所有监控数据(包含大量内部拓扑信息),必须启用强认证、HTTPS,必要时限制来源 IP。不要长期用 port-forward 凑合。

与 kube-prometheus-stack 的关系

如果你装了 kube-prometheus-stack它已经内置了 Grafana——不用再单独装这个 chart,在 stack 的 values 里定制 grafana: 段落即可:

# kube-prometheus-stack 的 values.yaml
grafana:
  persistence:
    enabled: true
  adminPassword: "强密码"

观测云对照

如果部署 Grafana 的目的只是"给 Prometheus 数据看图",值得评估观测云这类一体化平台:仪表盘、告警、日志、Trace 统一在同一处,免维护 Grafana 本身的升级与持久化;已有 Grafana 面板习惯的团队,也可以把观测云作为数据源继续用 Grafana 出图,两条路都通。

常见问题(FAQ)

Q:Pod 重建后我的仪表盘全没了?
A:persistence.enabled 没开。chart 安装输出里其实有黄色警告——持久化关掉时数据是临时的。开持久化后已丢的配置无法找回,重建吧。

Q:admin 密码忘了怎么重置?
A:kubectl edit secret -n monitoring grafanaadmin-password(base64),或用 values 里 adminPassword 重新 upgrade。

Q:能用 GitOps 管理仪表盘吗?
A:能。dashboardProviders + ConfigMap 挂载 JSON 文件,或用 sidecar 从 Git 仓库同步(sidecar.dashboards.enabled)。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台