如何使用kubectl总结Kubernetes中的所有资源限制和请求?
我开始使用它,并注意到当节点内的吊舱限制高于实际容量时,它会给您一些警告。 因此,我试图通过kubectl获得这些信息,但我对jsonpath还不熟悉,我只是通过以下方式获得了原始信息:如何使用kubectl总结Kubernetes中的所有资源限制和请求?,kubernetes,kubectl,jsonpath,Kubernetes,Kubectl,Jsonpath,我开始使用它,并注意到当节点内的吊舱限制高于实际容量时,它会给您一些警告。 因此,我试图通过kubectl获得这些信息,但我对jsonpath还不熟悉,我只是通过以下方式获得了原始信息: kubectl get pods-o=jsonpath='{.items..resources.limits}'-A 这就产生了这样的结果: {“cpu”:“200m”,“内存”:“1Gi”}{“cpu”:“200m”,“内存”:“1Gi”}{“cpu”:“200m”,“内存”:“512Mi”}{“cpu”
kubectl get pods-o=jsonpath='{.items..resources.limits}'-A
这就产生了这样的结果:
{“cpu”:“200m”,“内存”:“1Gi”}{“cpu”:“200m”,“内存”:“1Gi”}{“cpu”:“200m”,“内存”:“512Mi”}{“cpu”:“500m”,“内存”:“250Mi”}{“内存”:“170Mi”}{“内存”:“170Mi”}{“cpu”:“2”,“内存”:“2Gi”}{“cpu”:“2”,“内存”:“2Gi”}{“cpu”:“2”,“内存”:“2Gi”}{“cpu”:“2”,“内存”:“2Gi”}{“cpu”:“1”、“内存”:“1Gi”}“cpu”:“1Gi”{“cpu”:“1Gi”{“内存”:“1Gi”},“内存”:“128Mi”}{“cpu”:“100m”,“内存”:“128Mi”}{“cpu”:“500m”,“内存”:“600Mi”}{“cpu”:“1”,“内存”:“1Gi”}{“cpu”:“100m”,“内存”:“25Mi”}{“cpu”:“100m”,“内存”:“25Mi”}
因此,我的问题是,我如何计算所有这些值?这些值是否准确,或者我是否遗漏了任何其他查询?我已经使用LimitRange进行了检查,得到的值似乎是正确的,结果包括LimitRange配置设置的限值。不幸的是,使用
kubectl
完全是
但是,您可以考虑使用:
- CPU请求/限制/实际使用/限制
- 内存请求/限制/实际使用/终止
仅使用
kubectl
命令是不可能的。但是,您可以使用kubectl
的输出并编写基本shell脚本来计算总值
下面的shell脚本将输出所有名称空间中所有POD的总CPU限制(单位m
units)
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请求、内存请求和限制值