
进击云原生
2022/01/21阅读:55主题:默认主题
Kubermetrics使kubernetes集群可视化变的更简单
Kubermetrics 使 kubernetes 集群可视化变的更简单

什么是 Kubermetrics?
Kubermetrics 是一个开源的开发工具,它以简单易懂的用户界面提供 Kubernetes 集群监控和数据可视化。Kubermetrics 集成了 Prometheus 和 Grafana 仪表板在一个页面,允许定制仪表板和警报。
主页
按 namespace 显示所有 nodes, deployments, pods, services 和 ingresses 的仪表板。

指标页
指标页面利用了完整的 Grafana 集成定制仪表板。

告警页
我们的警报页利用完整的 Prometheus 集成,以便访问警报,图表,prom-queries
等!

部署 Kubermetrics
git clone https://github.com/oslabs-beta/kubermetrics.git
unzip kubermetrics.zip
如果未安装 Prometheus 和 Grafana,可以在 kubermetrics 根目录下执行apply
,将安装全部依赖组件:
kubectl apply -f manifests
如果已安装 Prometheus 和 Grafana,则进入manifests
目录,apply
清单 yaml 文件:
# cd kubermetrics/manifests
# kubectl apply -f kubermetrics-depl.yaml
deployment.apps/kubermetrics-depl created
service/kubermetrics-srv created
创建的 Pod 一直重启,查看日志报错如下:
# kubectl get pod | grep kuberme
kubermetrics-depl-5c54969bc-w4nnt 0/1 CrashLoopBackOff 1 88s
# k logs -f kubermetrics-depl-5c54969bc-w4nnt
standard_init_linux.go:211: exec user process caused "exec format error"
这个问题在 github 上有相同的issue,目前尚未解决。
# docker run -ti kubermetrics/kubermetrics:latest bash
standard_init_linux.go:211: exec user process caused "exec format error"
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# uname -m
x86_64
该错误 CPU 架构不同导致的,默认镜像适用于linux/arm64
。
为此我编译了 x86 架构的镜像,推送到阿里云镜像仓库和 dockerhub 仓库:
# 阿里云仓库
docker pull registry.cn-hangzhou.aliyuncs.com/smallsoup/kubermetrics
# dockerhub
docker pull smallsoup/kubermetrics
请运行以下命令以确保 grafana 和 prometheus 在这些端口上启动并运行!
kubectl port-forward <grafana-pod-name-goes-here> --namespace=<yournamespace> 3000:3000
kubectl port-forward <prometheus-pod-name-goes-here> --namespace=<yournamespace> 9090:9090
找到您当前正在运行的 Kubermetrics Pod 并运行以下命令
# kubectl port-forward --address 0.0.0.0 pod/{pod名称} 8899:3068
Forwarding from 0.0.0.0:8899 -> 3068
Handling connection for 8899
这将在本机所有地址监听 8899 端口,转发到 Pod 的 3068 端口。
假如本机 IP 为10.0.11.2
,则访问10.0.11.2:8899
即可访问仪表板。
比较坑的是
应用程序在本地主机 localhost:3000 上查找 grafana,9090 上查找 promethues。不支持自定义。
Prometheus 的地址是写死:
./client/components/PrometheusMonitoring/PrometheusAlerts.js: src={"http://localhost:9090/alerts"}
Grafana 的地址是写死:
./client/components/GrafanaMonitoring/ClusterDashboard.js: src={"http://localhost:3000/goto/tJaUhdH7z?orgId=1"}
./client/components/GrafanaMonitoring/PodDashboard.js: src={"http://localhost:3000/d-solo/AAOMjeHmk/kubernetes-pod-monitoring?orgId=1&refresh=10s&from=1632155279207&to=1632158879207&panelId=3"}
./client/components/GrafanaMonitoring/PodDashboard.js: src={"http://localhost:3000/d-solo/AAOMjeHmk/kubernetes-pod-monitoring?orgId=1&refresh=10s&from=1632156042391&to=1632159642391&panelId=2"}
./client/components/GrafanaMonitoring/PodDashboard.js: src={"http://localhost:3000/d-solo/AAOMjeHmk/kubernetes-pod-monitoring?orgId=1&refresh=10s&from=1632156127873&to=1632159727873&panelId=8"}
可以自己修改代码,以支持指定两组件地址作为参数。
原文
本文同步发于微信公众号【我的小碗汤】,扫码关注,了解更多咨询,更有免费资源供您学习

作者介绍

进击云原生
公众号:进击云原生