有人知道如何根据磁盘空间消耗获得给定节点上的Pod的排序列表吗?
下面的命令可以帮助我根据给定的节点列出Pod,但我的要求是列出那些导致高磁盘空间使用率的Pod,作为调查和解决DiskPressure
驱逐状态的一部分。
kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<NODE_NAME>
我能够找到列出节点的CPU和内存使用情况的命令(参考:https://github.com/kubernetes/kubernetes/issues/17512#issuecomment-317757388),但与节点磁盘使用无关。
alias util='kubectl get nodes --no-headers | awk '\''{print $1}'\'' | xargs -I {} sh -c '\''echo {} ; kubectl describe node {} | grep Allocated -A 5 | grep -ve Event -ve Allocated -ve percent -ve -- ; echo '\'''
# Get CPU request total (we x20 because because each m3.large has 2 vcpus (2000m) )
alias cpualloc='util | grep % | awk '\''{print $1}'\'' | awk '\''{ sum += $1 } END { if (NR > 0) { print sum/(NR*20), "%\n" } }'\'''
# Get mem request total (we multiply by 75 because because each m3.large has 7.5G ram )
alias memalloc='util | grep % | awk '\''{print $5}'\'' | awk '\''{ sum += $1 } END { if (NR > 0) { print sum/(NR*75), "%\n" } }'\'''
2条答案
按热度按时间cyvaqqii1#
找到了我的需求的答案-列出给定节点中运行的pod磁盘使用情况
其他统计信息:
获取节点文件系统使用情况
获取节点imageFs使用情况
获取节点iNodes统计信息
rdlzhqv92#
不幸的是,您将无法使用
kubectl
实现这一点,因为它没有这种功能。一种方法是登录到节点并使用docker ps -s
。我能想到的另一种方法是公开kubelet/cadvisor指标,并将其与Prometheus等指标scraper一起使用。
kubelet在
/metrics
端点上以Prometheus展示格式公开了它的所有运行时指标和所有cAdvisor指标。请注意,kubelet还公开了/metrics/cadvisor
、/metrics/resource
和/metrics/probes
端点中的指标。磁盘指标通常在/stats/summary
端点上可用。附加信息: