一款k8s实时错误监控工具,值得用起来

2021-12-24 19:50:26 浏览数 (1)

大家好,我是小碗汤,今天为大家分享一款k8s集群错误监控工具: Kubiquity

Kubiquity[1] 是一个基于 Electron 的 Kubernetes 健康监控应用程序。它结合了 Kubernetes 命令行工具和 Prometheus 指标服务器,以从集群中获取实时信息。用户可以通过实时跟踪每个集群的事件日志历史以及 CPU 和内存使用情况来跟踪其集群中的异常情况。

它能做什么?

Kubernetes 缺乏强大的错误跟踪。此外, Kubernetes 开发人员需要一个图形用户界面 (GUI) 来与他们的集群进行交互和分析,将 Kubernetes 事件日志从命令行移动到 Kubiquity。

K8sM8s 团队构建了一个易于使用且直观的工具,供开发人员搜索和保存相关事件。该应用程序还结合了 Prometheus 指标来提供详细的最新内存使用情况,以便开发人员可以看到内存峰值并防止内存不足 (OOM) 终止错误。

它是如何工作的?

Kubiquity 连接到现有集群并利用 kubectl 和 Prometheus 查询从 Kubernetes 集群中检索实时事件日志、资源指标、事件日志、pod CPU 、内存使用情况,一起显示在 Kubiquity 应用程序上。此信息本地存储在 Electron 的 JSON 存储中,用户可以在其中对事件日志进行排序和过滤,并将相关日志下载到 CSV 文件中以供进一步分析使用。

集群事件日志:

Pod 的内存使用情况:

Pod 的 CPU 使用率:

安装Kubiquity

  1. 启动一个 Kubernetes 集群
  2. 如果没部署过Prometheus,请先安装Prometheus[2]
  3. 下载Kubiquity[3]

源码编译,需要有yarn环境,这里我们在node:12的docker镜像中编译:

代码语言:javascript复制
docker pull node:12

下载包

代码语言:javascript复制
# wget https://github.com/oslabs-beta/Kubiquity/archive/refs/tags/v1.0.0.tar.gz

解压进入目录

代码语言:javascript复制
tar -zxf v1.0.0.tar.gz 
cd Kubiquity-1.0.0/

运行yarn命令:

代码语言:javascript复制
# yarn
yarn install v1.22.17
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 171.08s.

基于您的操作系统,运行yarn run package-linux或yarn run package-win:

代码语言:javascript复制
# yarn run package-linux
yarn run v1.22.17
$ electron-packager . --overwrite --platform=linux --arch=x64 --icon=src/assets/images/icon.png --prune=true --out=release-builds
Packaging app for platform linux x64 using electron v13.1.7
Done in 31.82s.

应用程序将被创建并放置在release-builds文件夹中。

代码语言:javascript复制
# cd release-builds/kubiquity-linux-x64/
# ls -lh
total 173M
-rw-r--r-- 1 root root 1.1K Dec 24 02:25 LICENSE
-rw-r--r-- 1 root root 5.1M Dec 24 02:25 LICENSES.chromium.html
-rwxr-xr-x 1 root root  50K Dec 24 02:25 chrome-sandbox
-rw-r--r-- 1 root root 139K Dec 24 02:25 chrome_100_percent.pak
-rw-r--r-- 1 root root 204K Dec 24 02:25 chrome_200_percent.pak
-rw-r--r-- 1 root root  10M Dec 24 02:25 icudtl.dat
-rwxr-xr-x 1 root root 134M Dec 24 02:25 kubiquity
-rwxr-xr-x 1 root root 229K Dec 24 02:25 libEGL.so
-rwxr-xr-x 1 root root 6.9M Dec 24 02:25 libGLESv2.so
-rwxr-xr-x 1 root root 2.8M Dec 24 02:25 libffmpeg.so
-rwxr-xr-x 1 root root 4.0M Dec 24 02:25 libvk_swiftshader.so
-rwxr-xr-x 1 root root 4.3M Dec 24 02:25 libvulkan.so.1
drwxr-xr-x 2 root root 4.0K Dec 24 02:25 locales
drwxr-xr-x 3 root root   17 Dec 24 02:25 resources
-rw-r--r-- 1 root root 4.9M Dec 24 02:25 resources.pak
-rw-r--r-- 1 root root  48K Dec 24 02:25 snapshot_blob.bin
drwxr-xr-x 2 root root   43 Dec 24 02:25 swiftshader
-rw-r--r-- 1 root root 162K Dec 24 02:25 v8_context_snapshot.bin
-rw-r--r-- 1 root root    6 Dec 24 02:25 version
-rw-r--r-- 1 root root  107 Dec 24 02:25 vk_swiftshader_icd.json

当然也可以下载编译好的包[4]

注意,运行时需要依赖的包,可以通过yum安装:

代码语言:javascript复制
yum install wget atk libxshmfence at-spi2-atk libdrm* gtk3 libgbm* alsa-lib-devel -y

目前官方没有提供打包好的docker镜像,需要本地有nodejs、yarn以及其他依赖包。

未来要做的

Kubiquity一直在寻求改进并为开发人员提供更多功能。以下是它们正在筹备中的一些功能。

  • 目前只支持win、linux,将来兼容Mac
  • GitHub集成
  • 随着时间的推移跟踪和存储内存和 CPU 使用情况
  • 基于警告和错误生成建议说明
  • 为用户提供将数据持久化到非本地数据库的选项

参考资料

[1]Kubiquity: https://github.com/oslabs-beta/Kubiquity

[2]Prometheus: https://prometheus-community.github.io/helm-charts

[3]Kubiquity: https://github.com/oslabs-beta/Kubiquity/releases/tag/v1.0.0

[4]编译好的包: https://github.com/oslabs-beta/Kubiquity/releases/download/v1.0.0/kubiquity-linux-x64.zip

0 人点赞