Grafana 是一个跨平台的开源的度量分析和可视化工具,支持将采集的数据进行可视化查询和展示。本文为您介绍如何在集群中搭建 Grafana 并对接工作区。
您可以在容器服务 VKE 集群中使用开源镜像或部署脚本搭建 Grafana,两者的主要区别如下。
部署方式 | 认证方式 | 数据接入 | 说明 |
---|---|---|---|
开源镜像 | BasicAuth | 未接入工作区,需要手动接入。 | 支持灵活的版本选择,建议在大多数场景下使用。 |
部署脚本 | BasicAuth、火山引擎 AK/SK | 已接入工作区。 | 支持灵活的认证方式,当需要使用 AK/SK 认证时首选。 |
说明
本文仅简单介绍了在容器服务集群中部署 Grafana 的方法,未涉及高可用性配置。如有高可用性需求,需要使用外部的数据库(MySQL 或 Postgres)代替 Grafana 自带的嵌入式 sqlite3 数据库。详情请参见 官方文档。
allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ebs-essd parameters: ChargeType: PostPaid type: ESSD_PL0 # 云盘类型,云盘的名称必须大写 zone: cn-beijing-a # 云盘可用区 provisioner: ebs.csi.volcengine.com reclaimPolicy: Delete # 回收策略 volumeBindingMode: Immediate # 存储卷绑定模式
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: grafana-pvc namespace: volcano-metrics spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi # 存储容量 storageClassName: ebs-essd # 已创建的存储类名称 volumeMode: Filesystem
apiVersion: apps/v1 kind: Deployment metadata: name: grafana-demo # Grafana 实例名称 namespace: volcano-metrics # Grafana 实例名称所在的命名空间 spec: replicas: 1 # Grafana 实例的副本数。由于本例中使用 PVC 来实现持久化配置,因此这里只能是单副本 selector: matchLabels: app: grafana template: metadata: labels: app: grafana spec: securityContext: fsGroup: 472 supplementalGroups: - 0 containers: - name: grafana # 容器名称 image: grafana/grafana:latest # 使用 Docker Hub 中的开源镜像和最新版本 ports: - containerPort: 3000 # 容器开放的端口号 resources: requests: # 指定最小资源需求 cpu: "250m" memory: "750Mi" limits: # 指定资源上限 cpu: "1" memory: "2Gi" volumeMounts: # 挂载存储卷 - name: grafana-pv mountPath: /var/lib/grafana volumes: - name: grafana-pv # 添加存储卷 persistentVolumeClaim: claimName: grafana-pvc
apiVersion: v1 kind: Service metadata: name: grafana # 服务的名称 namespace: volcano-metrics # 服务所在的命名空间 spec: selector: app: grafana # 通过标签选择器将服务与后端容器组(Pod)绑定 ports: - name: rule # 端口映射规则名称 protocol: TCP # 服务协议 port: 3000 # 服务端口 targetPort: 3000 # 容器端口,即工作负载对外开放的端口 type: ClusterIP # 服务的类型
kubectl port-forward service/grafana 3000:3000 -n volcano-metrics
admin
和密码admin
登录。使用脚本部署 Grafana 时,默认的实例规格如下表所示。
实例名称 | 默认 CPU 请求值 | 默认内存请求值 | 默认 CPU 上限值 | 默认内存上限值 |
---|---|---|---|---|
grafana | 0.2 Core | 512 MiB | 1 Core | 1 GiB |
注意
使用脚本部署的 Grafana 不支持修改或添加认证方式,请您部署前明确使用 AK/SK 认证或者 Baisc Auth 认证。如果部署后需要修改认证方式,需要首先删除已部署的 Grafana,并使用新的认证方式重新部署。详情请参见 使用部署脚本删除 Grafana。
您可以使用部署脚本,快速部署 Grafana。当采用默认配置部署时,操作步骤如下:
./install.sh install-grafana \ --region cn-beijing \ # 托管 Prometheus 工作区所在地域 --namespace volcano-metrics \ # 部署 Grafana 的命名空间 --query-url http://query.prometheus-cn-beijing.ivolces.com/workspaces/xxx \ # 托管 Prometheus 工作区的 Query URL 地址 --access-key TDOSNQG*** \ # 火山引擎账号的 AK --secret-key YvT3ing*** # 火山引擎账号的 SK
说明
本文以 AK/SK 认证为示例,如果您需要使用 Basic Auth 认证,需要将--access-key
、--secret-key
参数修改为--basic-auth-username
、--basic-auth-password
,详情请参见 部署脚本使用帮助。
您可以在 Grafana 中挂载 PVC ,实现永久存储。操作步骤如下:
./install.sh install-grafana \ --region cn-beijing \ # 托管 Prometheus 工作区所在地域 --namespace volcano-metrics \ # 部署 Grafana 的命名空间 --query-url http://query.prometheus-cn-beijing.ivolces.com/workspaces/xxx \ # 托管 Prometheus 工作区的 Query URL 地址 --access-key TDOSNQG*** \ # 火山引擎账号的 AK --secret-key YvT3ing*** # 火山引擎账号的 SK --storage-class ebs-ssd \ # 挂载存储卷(SC)的类型 --grafana-pvc-capacity 20Gi # 挂载存储卷声明(PVC)的大小
说明
本文以 AK/SK 认证为示例,如果您需要使用 Basic Auth 认证,需要将--access-key
、--secret-key
参数修改为--basic-auth-username
、--basic-auth-password
,详情请参见 部署脚本使用帮助。
当 Grafana 的配置错误或不符合要求时,可以使用脚本删除已部署的 Grafana。
./install.sh uninstall-grafana \ --region cn-beijing # 托管 Prometheus 工作区所在地域
您可以通过安装脚本的 --help
参数,查看脚本中所有的预定义字段和含义。
./install.sh install-grafana --help
安装脚本中不同字段的含义和示例如下。
$ ./install.sh install-grafana --help install grafana Usage: install.sh install-grafana [flag...] Flag: {{flag}} {{current val if exist}} --query-url http://query.prometheus-cn-beijing.com/workspace/xxx --basic-auth-username username-demo --basic-auth-password password-demo --access-key TDOSNQG*** --secret-key YvT3ing*** --region cn-beijing --exec-script-env local --rendering-only --namespace volcano-metrics --storage-class ebs-ssd --grafana-pvc-capacity 20Gi
参数 | 说明 |
---|---|
--query-url | 工作区的 Query 地址,详情请参见 获取 Remote Write 和 Query 地址。 |
--basic-auth-username | 工作区 Basic Auth 认证模式下的认证用户名。 |
--basic-auth-password | 工作区 Basic Auth 认证模式下的认证密码。 |
--access-key | 工作区 AK/SK 认证模式下使用的 AccessKey ID。 |
--secret-key | 工作区 AK/SK 认证模式下使用的 AccessKey Secret。 |
--region | 工作区所在地域,例如:cn-beijing。 |
--exec-script-env | 部署脚本执行环境,包括:
|
--rendering-only | 仅查看 Grafana 安装清单,不实际安装。 |
--namespace | 部署 Grafana 的命名空间。如果您未配置该参数,则缺省部署在 volcano-metrics 命名空间中。 |
--storage-class | Grafana 挂载的 PVC 类型。 |
--grafana-pvc-capacity | Grafana 挂载的 PVC 容量大小。整数形式,单位为 Gi。例如:20Gi 表示挂载的存储大小为 20GB。 |