news 2026/9/12 7:32:24

Grafana 如何用 Helm Chart 在 Kubernetes 上部署并访问实例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Grafana 如何用 Helm Chart 在 Kubernetes 上部署并访问实例

Grafana 如何用 Helm Chart 在 Kubernetes 上部署并访问实例

【免费下载链接】grafanaThe open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.项目地址: https://gitcode.com/GitHub_Trending/gr/grafana

本文解决一个具体任务:在已有的 Kubernetes 集群上用 Helm 部署 Grafana,并通过浏览器登录其 Web 控制台。全部步骤来自官方安装文档 Grafana on Helm Charts,安装的 chart 是grafana-community/grafana。需要说明的是:该 chart 由 Grafana 开源社区维护,文档明确指出代码不提供任何担保,遇到问题可上报到社区维护的仓库。

前置条件

开始之前,按文档 "Before you begin" 一节确认两项环境已就绪:

  • 一台运行中的 Kubernetes 服务器(本地或云端集群均可)。
  • 已安装最新稳定版 Helm。Helm 是用于管理 Kubernetes 应用的开源命令行工具。

后续所有命令都在一个可以访问目标集群的终端中执行,无需安装 Grafana 本身的其他依赖。

添加并验证 Helm 仓库

先添加 Grafana 社区的 Helm 仓库,这样后续命令才能下载到正确的 chart:

helm repo add grafana-community https://grafana-community.github.io/helm-charts

文档给出的通用语法是helm repo add <DESIRED-NAME> <HELM-REPO-URL>,其中<DESIRED-NAME>是仓库别名、<HELM-REPO-URL>是仓库地址。上面示例使用grafana-community作为别名,后续searchinstall命令都会引用它。

验证仓库已添加:

helm repo list

文档示例输出(示例结果):

NAME URL grafana-community https://grafana-community.github.io/helm-charts

再更新仓库以拉取最新的 Grafana Helm charts:

helm repo update

创建独立 namespace 并部署 chart

文档明确建议部署时使用单独的 namespace,而不是依赖 default namespace——default 中可能已有其他应用运行,会产生冲突等潜在问题。

创建 namespace:

kubectl create namespace monitoring

文档示例输出(示例结果):

namespace/monitoring created

查找要安装的 chart:

helm search repo grafana-community/grafana

文档说明该命令会列出可用的 Grafana charts,从中可以安装最新版本。

执行部署:

helm install my-grafana grafana-community/grafana --namespace monitoring

命令各部分的含义(文档原解释):

  • helm install:在 Kubernetes 集群上部署 chart;
  • my-grafana:你自己指定的逻辑 chart 名(release 名),本文后续命令都复用它;
  • grafana-community/grafana:要安装的仓库和包名;
  • --namespace:部署到的 namespace,本例为monitoring

验证部署状态

查看 release 状态,确认STATUS列出现deployed

helm list -n monitoring

文档示例输出(示例结果,其中的时间戳与 chart/app 版本仅为示例值):

NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION my-grafana monitoring 1 2024-01-13 23:06:42.737989554 +0000 UTC deployed grafana-6.59.0 10.1.0

再查看 namespace 内所有对象的整体状态:

kubectl get all -n monitoring

如果STATUS列出现错误或警告,文档建议检查日志,见下文「排查」一节。

访问 Grafana 实例

获取 admin 密码

先打印 chart 的 notes:

helm get notes my-grafana -n monitoring

这段 NOTES 会给出完整说明:如何解码 admin 账户密码、如何在浏览器访问 Grafana 服务。获取密码的命令:

kubectl get secret --namespace monitoring my-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

输出是经过base64解码后的 admin 账户密码。文档建议把解码后的密码保存到你本机上的一个文件里。

端口转发并用浏览器登录

先把已部署 Pod 的完整名字存入 shell 变量POD_NAME。标签选择器由文档固定给出,其中app.kubernetes.io/instance=my-grafana对应上一步的 release 名,如果 release 名不同需要相应替换:

export POD_NAME=$(kubectl get pods --namespace monitoring -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=my-grafana" -o jsonpath="{.items[0].metadata.name}")

然后执行端口转发,让 Grafana Pod 监听本地3000端口:

kubectl --namespace monitoring port-forward $POD_NAME 3000

在浏览器中打开127.0.0.1:3000,Grafana 登录页会出现。用户名输入admin,密码粘贴之前解码并保存的密码。能进入控制台,即说明部署与访问这两步都已完成。

可选:启用持久化存储

默认情况下持久化存储是禁用的,Grafana 使用临时存储,所有数据保存在容器文件系统内——容器停止、重启或崩溃后数据会丢失。文档将启用持久化存储标记为recommended,用于确保数据在容器重启或故障时不丢失。

步骤:

  1. grafana-community/helm-charts仓库(本文所用 chart 的来源仓库)下载values.yaml文件,在编辑器中打开。文档说明你可以用一个包含全部改动的 YAML 文件,也可以拆成多个文件。

  2. persistence一节把enabledfalse改为true(以下为文档给出的片段,注意保持缩进):

    persistence: type: pvc enabled: true # storageClassName: default
  3. 通过helm upgrade指定该文件使改动生效:

    helm upgrade my-grafana grafana-community/grafana -f values.yaml -n monitoring

完成后,PVC 会存储仪表盘、数据源等全部数据。

排查

收集 Grafana 日志

文档强调排查任何问题时都应对查看 Grafana 服务端日志。对单容器 Deployment:

kubectl logs --namespace=monitoring deploy/my-grafana

如果 Deployment 中运行了多个容器,用-c指定容器名只取 Grafana 容器的日志。下面是文档原样示例,其中的 Deployment 名grafana与容器名需要按你集群中的实际对象替换(本文 release 名为my-grafana):

kubectl logs --namespace=monitoring deploy/grafana -c my-grafana

把日志级别提升到 debug

Grafana 默认日志级别是info,可以提升为debug来获取诊断所需信息:

  1. 打开values.yaml,找到grafana.ini下关于 log mode 的段落,在mode: console行的正下方加level: debug。文档特别提醒:缩进层级必须保持一致,否则不生效。

    grafana.ini: paths: data: /var/lib/grafana/ ..... mode: console level: debug
  2. 应用改动:

    helm upgrade my-grafana grafana-community/grafana -f values.yaml -n monitoring
  3. 验证:用之前方式访问 Grafana UI 并登录,进入Server Admin > Settings,搜索 log,确认级别显示为debug

重置 admin 登录凭据

默认情况下超级管理员凭据是通过 secret 生成的。若想改成一个固定密码,编辑values.yaml,找到adminPassword处定义新密码(文档示例):

# Administrator credentials when not using an existing secret (see below) adminUser: admin adminPassword: admin

然后执行:

helm upgrade my-grafana grafana-community/grafana -f values.yaml -n monitoring

验证方式:登录 Grafana 时用户名和密码都输入admin,能登录即说明重置生效。示例中的密码值admin来自文档,你可以替换成自己的密码。

清理(可选)

不再需要该部署时,卸载 release:

helm uninstall my-grafana -n monitoring

文档对该命令的说明是:它会删除指定 namespace(本例monitoring)中的对象。若还要删除 namespace 本身:

kubectl delete namespace monitoring

这两条都是删除类操作,执行前请确认 namespace 与 release 中已没有需要保留的对象。

【免费下载链接】grafanaThe open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.项目地址: https://gitcode.com/GitHub_Trending/gr/grafana

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 7:31:21

具身机器人核心零部件技术解析与应用实践

1. 具身机器人的核心零部件概述具身机器人&#xff08;Embodied Robot&#xff09;作为当前机器人技术的前沿方向&#xff0c;其核心在于通过物理实体与环境的实时交互来实现智能行为。与传统工业机器人相比&#xff0c;具身机器人需要更复杂的感知-决策-执行闭环系统。这个系统…

作者头像 李华
网站建设 2026/9/12 7:27:30

如何用 V 语言 mcp 模块编写 MCP Server 并接入 AI 客户端

如何用 V 语言 mcp 模块编写 MCP Server 并接入 AI 客户端 【免费下载链接】v Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C > V translation. https://…

作者头像 李华