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)
    )
  '