26Z26b

QK·2026년 8월 26일

네임스페이스마다 특정 이름(또는 접두사/패턴)을 가진 Pod들의 CPUMemory Request 총합을 구하는 방법은 환경과 도구에 따라 크게 세 가지로 나뉩니다.


방법 1. Shell 스크립트 + jq 활용 (가장 간단하고 범용적)

kubectl로 전체 Pod 목록을 JSON으로 가져온 뒤, jq로 특정 이름 패턴을 필터링하여 네임스페이스별로 합산하는 방식입니다.

my-app 부분에 찾고자 하는 Pod 이름(정규식 패턴)을 넣고 터미널에서 실행하면 됩니다.

kubectl get pods -A -o json | jq -r '
  def parse_cpu:
    if . == null then 0
    elif endswith("m") then (.[:-1] | tonumber)
    elif endswith("n") then ((.[:-1] | tonumber) / 1000000)
    else ((. | tonumber) * 1000) end;

  def parse_mem:
    if . == null then 0
    elif endswith("Ki") then ((.[:-2] | tonumber) / 1024)
    elif endswith("Mi") then (.[:-2] | tonumber)
    elif endswith("Gi") then ((.[:-2] | tonumber) * 1024)
    elif endswith("Ti") then ((.[:-2] | tonumber) * 1024 * 1024)
    else ((. | tonumber) / (1024 * 1024)) end;

  .items
  | map(select(.metadata.name | test("my-app"))) # Pod 이름 필터링 (정규식 지원)
  | group_by(.metadata.namespace)
  | .[]
  | {
      namespace: .[0].metadata.namespace,
      pod_count: length,
      total_cpu_m: (map(.spec.containers[].resources.requests.cpu // "0" | parse_cpu) | add),
      total_mem_Mi: (map(.spec.containers[].resources.requests.memory // "0" | parse_mem) | add)
    }
  | "\(.namespace)\tPods: \(.pod_count)\tCPU: \(.total_cpu_m)m\tMemory: \(.total_mem_Mi | round)Mi"
' -r | column -t -s $'\t'

방법 2. Prometheus / Grafana PromQL 활용 (모니터링 환경이 있는 경우)

클러스터에 Prometheus가 구성되어 있다면, PromQL을 이용해 네임스페이스별 합계를 즉시 계산할 수 있습니다.

CPU Request 총합 (Cores 단위)

sum(kube_pod_container_resource_requests{resource="cpu", pod=~"my-app.*"}) by (namespace)

Memory Request 총합 (GiB 단위로 환산)

sum(kube_pod_container_resource_requests{resource="memory", pod=~"my-app.*"}) by (namespace) / 1024 / 1024 / 1024

방법 3. 라벨(Label) 기반인 경우 (권장)

Pod 이름 대신 app=my-app과 같은 라벨을 사용 중이라면 kubectl-custom-columnskube-capacity 플러그인과 결합하여 더 직관적으로 조회할 수 있습니다.

# kubectl-view-allocations 또는 kube-capacity 플러그인 활용 시
kubectl get pods -A -l app=my-app -o custom-columns=\
NAMESPACE:.metadata.namespace,\
POD:.metadata.name,\
CPU_REQ:.spec.containers[*].resources.requests.cpu,\
MEM_REQ:.spec.containers[*].resources.requests.memory
profile
engineer

0개의 댓글