跳到主要内容

Grafana Kubernetes 部署

Kubernetes 部署 Grafana 时,将应用、持久化、Secret、Ingress 和 NetworkPolicy 作为一个交付单元管理。生产多副本 Grafana 依赖外部 MySQL/PostgreSQL;不要把 SQLite 文件挂到多个 Pod。

1. Helm 安装​

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm upgrade --install grafana grafana/grafana \
--namespace monitoring --create-namespace \
--values values-production.yaml

values-production.yaml 应明确镜像版本、资源 requests/limits、Admin Secret、持久卷、外部数据库、SSO、数据源 Provisioning、Dashboard Provider 与 NetworkPolicy。

2. Service 与 Ingress​

使用 ClusterIP Service,经 Ingress 或网关提供 HTTPS、域名和 SSO。Ingress 需要与 root_url 一致;若使用子路径,还需启用 serve_from_sub_path。管理端口不要通过 LoadBalancer 直接暴露到公网。

3. 高可用部署​

多副本需要共享外部数据库和相同 Provisioning 文件,Pod 使用反亲和分散到不同节点或故障域。会话、数据库连接池、插件版本与告警状态需在预发验证。高可用不等于数据源可用,Prometheus、Loki 和通知渠道也必须独立监控。

4. Kubernetes Dashboard 实践​

建立 Cluster、Node、Namespace、Workload、Pod 和应用六层视图。首屏展示可用性、容量、Pod 重启、调度失败和核心告警;详细资源、容器和日志下钻放入二级 Dashboard。ServiceMonitor、PodMonitor 与指标来源见 Prometheus Kubernetes 监控。