场景:今天一个节点的内存使用超过警报值了。
在排查问题的时候,想看看到底是什么 pods 把节点的内存资源吃光了。但是通过 kubectl describe node xxx
来查看这个节点的信息,上面只有每个 pods 的 resource requests & limits ,并不是实际的使用量。由于这个节点有好几个 namespaces 的 pods ,所以我就用比较笨的办法,配合 awk xargs 等,对每个 pod 逐一执行 kubectl top pod
查询实际内存的使用情况。
问题:有没有更先进的方法来查询节点上各个 pods 的资源使用情况?感谢!
2
justdoit123 OP @salmon5 w(゚Д゚)w 哇哦! 感谢,感谢~
|
3
Frankcox 277 天前 2
你们公司的 k8s 运维没做任何可观测性的配置嘛?
简单的有 mertics-server ,安了 metrics-server 就可以直接 kubectl top 查看 CPU 、内存信息。 标准的选择就多了些,我们用的是 cadvisor+kube-state-metrics+prometheus+grafana ,这样看的信息维度就很广了 |
4
justdoit123 OP @Frankcox grafana 里我看了下,主要都是根据 namespaces 的维度来看资源使用情况的,刚好没有节点的。metrics 我相信是收集了,只是没有配置对应的图表。 后续去看看怎么配置。
|
5
Frankcox 277 天前
@justdoit123 #4 grafana 的 PromQL 语句是自己写的,可以学下 Prometheus 的语法,查看每个 Node 的情况这种情景很常见的。
|
6
justdoit123 OP 说得很对,主要就是 PromQL 还不熟。 之前在生产环境上,把服务搞 OOM 过。准备自己搭一个学习环境 来玩一玩。
|
7
ljian6530 277 天前 via iPhone
@justdoit123 赞同 3 楼,其实就是 https://github.com/prometheus-operator/kube-prometheus 这个方案,是包含丰富图标的。并且有 node 的纬度的 pod 资源使用情况。让你们运维搞下。
|
8
CivAx 277 天前
可以直接用 kube-prometheus-stack 这个 helm chart ,我也偶尔遇到跟你一模一样的问题,我是直接去 dashboard 看的。
|
9
ExplodingFKL 277 天前
如果是在线调试的话直接上 k9s ,前提是安装了 metrics-server ,如果是监控的话直接 prometheus 和 kube-state-metrics
|
10
fxalll 277 天前
minikube dashboard
|
11
beyondstars 277 天前
可以在集群上安装一个 metrics-server, 再安装一个 Lens.app 客户端。
|
12
beyondstars 277 天前
地址在这: https://k8slens.dev/
|
13
cheng6563 277 天前
kube-prometheus-stack helm 一把梭
|
14
cheng6563 277 天前
里面自带了很多 grafana 图表和告警规则,一般够用了。
|
15
YaD2x 277 天前
k8s 有 top 命令
|
16
windcode 148 天前
Lens 现在收费了,可以考虑这个新项目 https://github.com/KusionStack/karpor
|