jasonhui
https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/
kubectl get pods -A -o json \
| jq -r '
.items[]
| select(.status.phase=="Running")
| .spec.containers[]
| {cpu_req:.resources.requests.cpu, mem_req:.resources.requests.memory, cpu_lim:.resources.limits.cpu, mem_lim:.resources.limits.memory}
' \
| jq -s '
def to_cpu($v):
if $v==null then 0
elif $v|test("m$") then ($v|sub("m$";"")|tonumber/1000)
else ($v|tonumber)
end;
def to_mem_gi($v):
if $v==null then 0
elif $v|test("Ki$") then ($v|sub("Ki$";"")|tonumber/1024/1024)
elif $v|test("Mi$") then ($v|sub("Mi$";"")|tonumber/1024)
elif $v|test("Gi$") then ($v|sub("Gi$";"")|tonumber)
else ($v|tonumber/1024)
end;
reduce .[] as $i (
{cpu_req:0, mem_req:0, cpu_lim:0, mem_lim:0};
.cpu_req += to_cpu($i.cpu_req) |
.mem_req += to_mem_gi($i.mem_req) |
.cpu_lim += to_cpu($i.cpu_lim) |
.mem_lim += to_mem_gi($i.mem_lim)
)
'