如何在Kubernetes 环境中安装 Grafana 部署指南
本文介绍如何通过 Helm 部署 Grafana 并配置反向代理,以便在 Kubernetes 集群中使用 Grafana,支持 HTTPS 加密和基本认证。
下载 Helm Chart
首先创建目录并下载 Grafana 的 Helm Chart。
mkdir -p grafana |
创建自定义 values.yaml
Grafana 的 values.yaml 文件用于配置 Helm Chart 部署的参数。以下是常用的配置项:
image: |
配置解释
镜像配置 (
image):选择正确的 Grafana 镜像版本。这里的tag参数设置为具体版本,如10.2.3。Ingress 配置 (
ingress):- 启用 Ingress 以便通过域名访问 Grafana。
nginx.ingress.kubernetes.io/rewrite-target:将请求路径重写为适合 Grafana 的路径。path和pathType配置了访问路径,并使用正则匹配来灵活处理请求。hosts配置为本地域名,确保 Grafana 可以通过指定域名访问。
持久化配置 (
persistence):- 使用 PVC 进行持久化存储,以便在 Grafana Pod 重启时不会丢失数据。
- 配置存储大小为
1Gi,并选择合适的存储类default。
额外的挂载配置 (
extraVolumeMounts):- 将 Grafana 的插件、仪表盘和配置文件夹挂载到指定路径,确保 Grafana 启动时能够使用这些资源。
使用 Helm 安装 Grafana
使用以下命令来安装 Grafana 并指定自定义的 values.yaml 配置文件:
helm install grafana -f grafana/values.yaml ./grafana --namespace grafana --create-namespace |
安装完成后输出
安装完成后,您可以通过以下命令获取 Grafana 的默认管理员密码:
kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo |
Grafana 控制台可以通过以下 DNS 地址访问:
http://grafana.k8scluster.com |
登录时,使用管理员账户 admin 和密码。
更新 Helm 部署
若需要对已部署的 Grafana 进行更新(例如修改配置),可以使用以下命令:
helm upgrade grafana -f grafana/values.yaml ./grafana --namespace grafana |
更新后输出
更新后同样可以通过以下命令获取更新后的管理员密码:
kubectl get secret --namespace grafana grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo |
登录 Grafana 控制台
Grafana 控制台可以通过浏览器访问以下地址:
http://grafana.k8scluster.com:30886/grafana |
登录时,使用之前获取的管理员密码进行登录。
导出 Prometheus 和 Alertmanager
创建 Prometheus 和 Alertmanager 的 Ingress
为 Prometheus 和 Alertmanager 创建一个 Ingress 资源,使其通过域名访问。
kind: Ingress |
创建 HTTP 基本认证
通过 htpasswd 创建一个基本认证文件,并将其作为 Secret 存储:
htpasswd -c auth admin # 设置管理员密码 |
创建 Secret
创建 Kubernetes Secret,用于存储基本认证凭证:
kubectl create secret generic prometheus-basic-auth --from-file=auth -n monitoring |