一套用于 Kubernetes 的现代 Grafana 仪表板

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 一套用于 Kubernetes 的现代 Grafana 仪表板


前言


我在2018年6月加入空客防务与航天公司( Airbus Defense&Space )担任 DevOps 工程师时,就开始了 Kubernetes 相关的工作。我在那里的第一个任务是测试在谷歌 Kubernetes 引擎(GKE)上运行的多个 Go 微服务的性能。为了完成这项任务,我在一个定制测试平台上使用 Grafana 来可视化和了解 Kubernetes 工作负载的资源使用情况。从那时起,我就对 Kubernetes 监控充满热情,并从未停止过。这个项目的灵感就来自于我在这个主题上所做的所有工作。


项目启动


我开始从社区中获取一些现有的仪表板,主要来自kubernetes-mixin 或 grafana.comgrafana.com 上提供的一些仪表板,如 Node Exporter Full 。使用这些仪表板并对它们进行调整,让我有机会在 Kubernetes 、Prometheus 和 Grafana 上学到很多东西。

在使用 Kubernetes 两年后,我认为是时候将我学到的所有东西都嵌入到一套 Grafana 仪表板中了,它可以帮助我在 Kubernetes 集群上构建和运行应用程序。这就是为什么我决定在2020年9月在 GitHub 上启动 dotdc/grafana-dashboard-kubernetesdotdc/grafana-dashboard-kubernetes 作为开源项目。


范围和功能


我想做的是一组仪表板,它们可以协同工作,帮助我快速解决日常操作问题。我不希望它们是详尽的,或者展示 kube-state-metrics 和 node_exporter 中可用的完整指标,而是希望它们在我需要它们时是有用的和直接的。到目前为止,它们对的技术团队非常有用。

该研究并没有使用USE, RED 或 the Four Golden Signals 等方法,但这些仪表板可能包括其中的一些零碎内容。如果您正在寻找其中一个更准确的工具,您应该检查 Kubernetes-Mixin 项目。

在过去的3年里,观看 Grafanacon 让我想使用最新的 Grafana 功能和面板。这就是为什么我决定使用那些可以带来一些有用的东西。代价是它们不能向后兼容旧的 Grafana 版本,因为它们使用:

gradient mode  在Grafana 8.1中引入(Grafana Blog post)

time series 在Grafana 7.4中引入 (Grafana Blog post)

$__rate_interval Grafana 7.2中引入(Grafana Blog post)

在我可能忘记的其他事情中,他们还有一个 Resolution 变量来配置 min_step ,以及一个 Prometheus Datasource 变量,因此他们将在一个联邦 Grafana 实例上工作。


如何安装


这个项目是开源的,你可以在GitHub上找到它,网址是:https://github.com/dotdc/grafana-dashboards-kubernetes

从那里,你会发现几种安装方法,包括:

● 在 Grafana 中导入 JSON 文件;

● 从 grafana.com 导入它们(使用仪表板ID);

● 使用 Kubernetes ConfigMaps 进行配置;

● 使用 Terraformed Kubernetes ConfigMaps 进行配置。

如果您只想快速浏览一下,可以使用以下方法克隆存储库:

git clone https://github.com/dotdc/grafana-dashboards-kubernetes.git

cd grafana-dashboards-kubernetes


仪表板说明和用法


就像我之前说的,我制作了这些仪表板,这样它们就可以很好地协同工作。您通常从全局视图开始,然后根据用例放大到更详细的视图。这就是为什么我决定称它们为“  Kubernetes 视图”,因为它们从特定的角度和特定的缩放级别显示 Kubernetes 集群上的信息。最后,您将看到还有一个 API 服务器、一个 CoreDNS 和一个 Starboard Operator (现在是 Trivy Operator )仪表板。

下面是对它们的简短描述:


Kubernetes / Views / Global


总体思路是什么?

● 能够快速获得 Kubernetes 集群的全局视图;

● 发现集群、命名空间和节点上的异常资源使用情况;

● 在您的 Kubernetes 集群上发现异常数量的资源类型;

● 发现错误配置的应用程序资源(请求和限制与实际)。


包括哪些面板?

● 群集 CPU、RAM 和网络的总利用率;

● 实际请求并限制群集的资源使用;

● Kubernetes资源总数(按类型);

● 按命名空间和节点划分的 CPU、RAM 和网络利用率。


Kubernetes / Views / Namespaces


总体思路是什么?

● 拥有 Kubernetes 集群的命名空间视图;

● 发现命名空间中不寻常的资源使用情况;

● 找出命名空间中异常数量的资源类型;

● 能够检查 PODS 状态和 PODS 副本;

● 监视命名空间中的持久卷容量和信息节点。


包括哪些面板?

● 命名空间 CPU、RAM 和网络利用率;

● 请求并限制命名空间的资源使用;

●  Kubernetes 资源按命名空间中的类型计数;

●  POD 状态、每个 POD 的容器数量和副本可用性;

● 您的命名空间中的持久卷容量和信息节点。


Kubernetes / Views / Nodes


总体思路是什么?

● 获取 Kubernetes 节点的详细视图;

● 发现节点中的异常资源使用情况;

● 能够在故障节点上找到受影响的 Pod;

● 从节点获取操作系统指标。


包括哪些面板?

● 节点的一般 CPU 和 RAM 使用情况;

● 每个节点上的 pod 计数和 pod 列表(带有命名空间和优先级类);

● 节点的详细 CPU、RAM 和网络使用情况;

● 系统加载、上下文切换和中断、文件描述符和时间同步;

● 连接到节点的工作负载的持久卷信息;

● 本地节点存储容量、信息节点、IO 和错误。


Kubernetes / Views / Pods


总体思路是什么?

● 详细查看您的 POD 和容器;

● 容器的 CPU 和 RAM 使用和配置;

● 能够调整您的容器资源请求和限制;

● 跟踪 POD 的网络利用率。


包括哪些面板?

●  Pod 信息:创建者,运行节点, Pod IP;

● 请求并限制命名空间的资源使用;

● 您的 PODS 容器的 CPU 和 RAM 请求和限制;

● 容器的 CPU 和 RAM 资源使用情况(实际使用情况);

●  POD 的网络使用情况。


Kubernetes / System / API Server


总体思路是什么?

● 快速检查 Kubernetes API 服务器运行状况;

● 获取已弃用的 Kubernetes 资源列表;

● 获取有关 API 服务器的信息以跟踪异常问题。


包括哪些面板?

●  API 服务器实例运行状况检查;

● 不推荐使用的 Kubernetes 资源列表;

●  Kubernetes API 服务器请求(按代码、动词、延迟和错误);

●  API 服务器的 CPU 和 RAM 使用情况。


Kubernetes / System / CoreDNS


总体思路是什么?

● 快速检查 CoreDNS 实例运行状况;

● 获取有关 CoreDNS 的信息以跟踪异常问题。


包括哪些面板?

● CoreDNS 实例运行状况检查;

● Kubernetes API 服务器请求(按代码、动词、延迟和错误);

●  API 服务器的 CPU 和 RAM 使用情况。


Kubernetes Addons / Trivy / Starboard Operator


此仪表板适用于 Aqua Security 公司的 Starboard / Trivy Operator。它需要 Giant Swarm 的  starboard-exporter 才能工作。该仪表板将很快更新,以便在最新的 Trivy-Operator 指标可用时使用这些指标。


总体思路是什么?

● 按严重性列出漏洞摘要;

● 有一个漏洞列表,其中包含一个可点击的链接,以了解有关每个漏洞的更多信息;

● 按严重性列出配置审核报告摘要。


包括哪些面板?

● 漏洞(按命名空间和严重性);

● 漏洞列表,每个列表上都有一个 CVE/GHSA 链接;

● 配置审核报告命名空间和严重性。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
JSON Prometheus Cloud Native
Grafana 系列 - 统一展示 -8-ElasticSearch 日志快速搜索仪表板
Grafana 系列 - 统一展示 -8-ElasticSearch 日志快速搜索仪表板
|
Prometheus Kubernetes 监控
Grafana 与 Kubernetes 的集成
【8月更文第29天】Grafana 是一个开源的仪表板和可视化平台,它支持多种数据源,可以用来创建美观的仪表板和图表。Kubernetes (K8s) 是一个流行的容器编排平台,用于自动化容器应用的部署、扩展和管理。将 Grafana 与 Kubernetes 集成起来,可以方便地监控 Kubernetes 集群的状态和性能指标。本文将详细介绍如何配置和使用 Grafana 来监控 Kubernetes 集群。
526 2
|
Prometheus Kubernetes 监控
Kubernetes(K8S) 监控 Prometheus + Grafana
Kubernetes(K8S) 监控 Prometheus + Grafana
659 2
|
Kubernetes Cloud Native 持续交付
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
云原生架构的核心组成部分通常包括容器化(如Docker)、容器编排(如Kubernetes)、微服务架构、服务网格、持续集成/持续部署(CI/CD)、自动化运维(如Prometheus监控和Grafana可视化)等。
|
监控 JavaScript 前端开发
Grafana 系列 - 统一展示 -6-Zabbix 仪表板
Grafana 系列 - 统一展示 -6-Zabbix 仪表板
|
JSON Prometheus Cloud Native
Grafana 系列 - 统一展示 -3-Prometheus 仪表板
Grafana 系列 - 统一展示 -3-Prometheus 仪表板
|
关系型数据库 API RDS
Grafana 系列 - 统一展示 -5-AWS Cloudwatch 仪表板
Grafana 系列 - 统一展示 -5-AWS Cloudwatch 仪表板
|
JSON Prometheus Cloud Native
Grafana 系列文章(十二):如何使用 Loki 创建一个用于搜索日志的 Grafana 仪表板
Grafana 系列文章(十二):如何使用 Loki 创建一个用于搜索日志的 Grafana 仪表板
|
JSON Kubernetes 数据格式
Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events
Grafana 系列文章(十三):如何用 Loki 收集查看 Kubernetes Events
|
Prometheus Kubernetes 监控
Kubernetes(k8s)上安装Prometheus和Grafana监控(下)
Kubernetes(k8s)上安装Prometheus和Grafana监控(下)
591 0

推荐镜像

更多
下一篇
oss云网关配置