本篇目录8 节

02安装部署Install

Kubernetes 与 Helm 部署

用官方 Helm Chart 把 Grafana 部署进 Kubernetes:values.yaml 关键项逐项解读,持久化与外部数据库的选择,Service 与 Ingress 暴露,以及生产环境的落地建议。

约 2 分钟/503 字/GRAFANA 12.X

前置条件

一个可用的集群、kubectl 与 Helm 3。Grafana 官方在 GitHub 仓库 grafana/helm-charts 中维护 Chart,以下命令基于该仓库。

三十秒装一个

helm repo add grafana https://grafana.com/charts/
helm repo update
helm search repo grafana/grafana   # 确认 chart 版本与 appVersion 对应关系
helm install grafana grafana/grafana \
  --namespace monitoring --create-namespace \
  -f values.yaml

提示: helm search repo 输出的 APP VERSION 才是会被部署的 Grafana 版本;Chart 版本与 Grafana 版本是两条独立的版本号,升级前先看清对应关系,见升级与回滚

values.yaml 关键项

adminUser: admin
adminPassword: ChangeMe-Str0ng

persistence:
  enabled: true
  size: 10Gi
  storageClassName: standard

ingress:
  enabled: true
  ingressClassName: nginx
  hosts:
    - grafana.example.com

sidecar:
  datasources:
    enabled: true
  dashboards:
    enabled: true

resources:
  requests:
    cpu: 100m
    memory: 128Mi
配置项 作用 生产建议
adminUser / adminPassword 初始管理员 改用 existingSecret 引用 Secret,别把明文写进 values
persistence 为数据目录建 PVC 单机 SQLite 方案,见下节
ingress 域名暴露 配合证书签发做 HTTPS
sidecar 自动发现带标签的 ConfigMap 作为数据源/仪表盘 强烈推荐,替代手点界面
resources 资源请求与上限 按压测设置,避免查询高峰被驱逐

持久化怎么选

Chart 默认用内置 SQLite 加 PVC,适合试点。生产规模请换外部 PostgreSQL 或 MySQL:数据库交给专门的托管或 Operator,values.yaml 里通过环境变量指向它,例如:

envFromSecret: grafana-db-secret
env:
  GF_DATABASE_TYPE: postgres
  GF_DATABASE_HOST: pg-primary.database.svc.cluster.local:5432
  GF_DATABASE_NAME: grafana

变量命名规则见环境变量覆盖配置

Service 与 Ingress

  • 集群内访问:Service 名称 grafana,端口 80 转发到容器的 3000
  • 对外访问:优先 Ingress;云环境也可用 service.type: LoadBalancer
  • 走了域名就必须对齐 root_url,否则登录跳转与静态资源会出错,可在 ingress.host 之外用 GF_SERVER_ROOT_URL 显式设置。

生产建议清单

  1. 数据源与仪表盘全部走声明式:sidecar 加 ConfigMap,或 GitOps 工具统一管理,理念见Provisioning:配置即代码
  2. 保留探针默认指向 /api/health,数据库故障时让集群感知,见日志、诊断与服务器管理
  3. 需要多副本时,必须使用外部数据库;SQLite 不支持多实例共享。
  4. 升级策略用 Recreate 而非滚动更新,避免新旧版本同时读写同一个库。

常见坑

  • 忘了 helm repo update:装出来的是缓存里的老 Chart。
  • PVC 一直 Pending:集群没有默认 StorageClass,显式指定 storageClassName
  • Ingress 域名与 cookie / 跳转打架:根因几乎都是 root_url 没改成对外域名。

下一步

本页为学习整理的中文改写,依据Grafana 官方文档最新版本编写(以 Grafana 12.x 为基准),操作路径请以实际产品界面为准。

Install