- 以下是一個可用于生產環境的 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 的性能和健康狀態。