kubernetes 按节点筛选列出“kubectl top pod”

zour9fqk  于 2023-04-05  发布在  Kubernetes
关注(0)|答案(2)|浏览(227)

有没有办法让top pods按节点过滤?
用例:我有一个节点,据报告使用了103%的cpu,我想验证是哪个pod导致的。

hsvhsicv

hsvhsicv1#

我不认为有直接的方法可以用kubectl top pods命令来做,因为过滤器的唯一选项是标签/选择器,它只适用于pod。
对于您的用例,您可以使用以下命令:

kubectl get pods -o wide | grep <node> | awk {'print $1'} | xargs -n1 command kubectl top pods  --no-headers
  • kubectl get pods -o wide:显示pod及其关联的节点信息
  • grep <node>:让您过滤位于特定节点上的pod
  • awk {'print $1'}:打印第一列(pod的名称)
  • xargs -n1 command kubectl top pods --no-headers:对每个pod执行top命令,不带头文件(NAME、CPU、MEMORY)

此外,您可以使用命令kubectl describe node <node>检查为一个特定节点中的每个pod设置的限制

juzqafwq

juzqafwq2#

对于powershell用户,只需将您的**<node_name>**设置为筛选

kubectl get pods -o wide --all-namespaces | sls "<node_name>" | ForEach-Object {$row = ($_ -split "\s+"); $top = ("kubectl -n $($row[0]) top pod $($row[1]) --no-headers --containers" | iex); foreach($line in $top){$container=$line -split "\s+"; [pscustomobject]@{node=$nodeName; pod=$container[0];container=$container[1];cpu=$container[2];memory=$container[3]}} } | Sort-Object pod| ft -AutoSize

相关问题