gpt4 book ai didi

kubernetes - 如何使用 kubectl 汇总 Kubernetes 中的所有资源限制和请求?

转载 作者:行者123 更新时间:2023-12-04 12:56:39 24 4
gpt4 key购买 nike

我开始使用 Lens并注意到当节点内的 pod 的限制高于实际容量时,它会向您发出一些警告。
A graphic visualization from Lens where you can see a warning telling that the specified limits are higher than the node capacity
所以我试图用 kubectl 获取这些信息,但我是 jsonpath 的新手,我只是设法使用这样的东西来获取原始信息:

kubectl get pods -o=jsonpath='{.items..resources.limits}' -A
这产生了这样的东西:
{"cpu":"200m","memory":"1Gi"} {"cpu":"200m","memory":"1Gi"} {"cpu":"200m","memory":"512Mi"} {"cpu":"500m","memory":"250Mi"} {"memory":"170Mi"} {"memory":"170Mi"} {"cpu":"2","memory":"2Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"1","memory":"1Gi"} {"cpu":"1","memory":"1Gi"} {"cpu":"2","memory":"2Gi"} {"cpu":"100m","memory":"128Mi"} {"cpu":"100m","memory":"128Mi"} {"cpu":"500m","memory":"600Mi"} {"cpu":"1","memory":"1Gi"} {"cpu":"100m","memory":"25Mi"} {"cpu":"100m","memory":"25Mi"}
所以,我的问题是,我如何总结所有这些值?这些值是准确的还是我遗漏了任何其他查询?我已经使用 LimitRange 检查过,我得到的值似乎是正确的,结果包括由 LimitRange 配置设置的限制。

最佳答案

仅使用 kubectl 是不可能的命令。但是,您可以使用 kubectl 的输出并编写一个基本的 shell 脚本来计算总值。
以下 shell 脚本将输出所有命名空间中所有 pod 的总 CPU 限制(以 m 为单位)。

res=$(kubectl get pods -o=jsonpath='{.items[*]..resources.limits.cpu}' -A)
let tot=0
for i in $res
do
if [[ $i =~ "m" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i ))
else
tot=$(( tot + i*1000 ))
fi
done
echo $tot
您可以扩展上述内容以计算 CPU 请求和内存请求以及限制值。

关于kubernetes - 如何使用 kubectl 汇总 Kubernetes 中的所有资源限制和请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66007364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com