- 以下是一个可用于生产环境的 Kubernetes 部署 Grafana 的 YAML 文件。该配置包括 Deployment、Service、ConfigMap 和 PersistentVolumeClaim,确保 Grafana 的高可用性和数据持久化。
Grafana 生产部署 YAML 文件
☆实操示例
cat grafana-deployment.yaml
关键配置说明
- Deployment:
- 使用
replicas: 2
确保高可用性。 - 通过环境变量设置管理员用户名和密码。
- 配置了
readinessProbe
和livenessProbe
以确保 Grafana 的健康状态。 - 挂载了持久化存储卷 (
PersistentVolumeClaim
) 和配置文件 (ConfigMap
)。
- ConfigMap:
- 包含
grafana.ini
配置文件,用于自定义 Grafana 的行为。 - 配置了匿名访问、数据库路径等。
- PersistentVolumeClaim:
- 使用持久化存储确保 Grafana 的数据(如仪表盘、用户配置)不会丢失。
- 可以根据需求调整存储大小和
StorageClass
。
- Service:
- 使用
ClusterIP
类型,仅在集群内部暴露服务。 - 如果需要外部访问,可以通过
Ingress
暴露。
- Ingress(可选):
- 使用
Ingress
和cert-manager
自动管理 TLS 证书。 - 配置了 HTTPS 强制跳转以提高安全性。
部署步骤
- 将上述 YAML 文件保存为
grafana-deployment.yaml
。 - 使用
kubectl
部署 Grafana:
- 检查部署状态:
- 访问 Grafana:
- 如果使用了
Ingress
,可以通过https://grafana.example.com
访问。 - 如果未使用
Ingress
,可以通过kubectl port-forward
临时访问:
然后访问 http://localhost:3000
。
生产环境建议
- 使用固定版本的镜像:
- 避免使用
latest
标签,改为固定版本(如grafana/grafana:9.5.2
)。
- 启用身份验证:
- 配置 OAuth、LDAP 或 SAML 集成,避免使用默认的管理员账号。
- 备份数据:
- 定期备份 Grafana 的持久化数据(如
/var/lib/grafana
)。
- 监控 Grafana:
- 使用 Prometheus 监控 Grafana 的性能和健康状态。