본문으로 건너뛰기

Metrics

홈 화면 > 프로젝트 선택 > 대시보드 > 컨테이너 맵 > 대상 선택 후 상세 분석 화면 진입 > 메트릭스

쿠버네티스 메트릭스

쿠버네티스는 각 컨테이너의 리소스 사용량을 통제하고 지속적으로 모니터링하면서 최적의 상태를 유지합니다. 따라서 리소스 사용량을 확인하고, 해당 데이터를 기반으로 컨테이너 리소스 사용량이 적절히 설정되었는지를 확인하는 과정은 쿠버네티스 모니터링의 기본적인 패턴이라고 할 수 있습니다.

CPU와 Memory 메트릭

대표적인 쿠버네티스 리소스 설정은 컨테이너의 CPU Request/Limit, Memory Request/Limit입니다. 다음은 설정 예시입니다.

apiVersion: v1
kind: Pod
metadata:
name: <Pod명>
spec:
containers:
- name: <컨테이너 1명>
image: <컨테이너 1 이미지>
resources:
requests:
memory: "64Mi"
cpu: "100m"
limits:
memory: "128Mi"
cpu: "200m"
- name: <컨테이너 2명>
image: <컨테이너 2 이미지>
resources:
requests:
memory: "128Mi"
cpu: "250m"
limits:
memory: "256Mi"
cpu: "500m"

위 설정을 통해 해당 Pod 내에는 2개의 컨테이너가 존재합니다. 각 컨테이너의 리소스 설정은 다음과 같습니다.

대상 컨테이너리소스 구분리소스 설정
컨테이너1CPURequest100m
Limit200m
MemoryRequest64Mi
Limit128Mi
컨테이너2CPURequest250m
Limit500m
MemoryRequest128Mi
Limit256Mi

다양한 컨테이너의 리소스 설정 정보 및 현재 사용량을 쉽게 파악하기란 쉽지 않습니다. 그래서 와탭 쿠버네티스 모니터링 서비스는 특정 단일 컨테이너, 사용자가 선택한 복수의 컨테이너들, 또는 Deployment 전체를 대상으로 리소스 설정 및 현재 사용량을 쉽게 확인할 수 있는 기능을 제공합니다.

  • 상세보기 화면 > 메트릭스 - 리소스 사용량 모니터링 및 분석

    리소스 사용량 모니터링 및 분석

  • 특정 컨테이너를 선택해 상태를 확인해 볼 수 있습니다.

    리소스 사용량 모니터링 및 분석

위 데이터를 보면 CPU는 Request 0.2cores(200m), Limit 0.4cores(400m)로 설정되어 있습니다. 현재 CPU 사용량은 0.02cores(20m) (5초 평균) 입니다. 우측의 CPU 관련 추이 그래프를 확인하면 전반적으로 여유가 있지만 간헐적으로 CPU 사용량이 증가하는 현상을 확인할 수 있습니다.

Memory는 Request 128MiB, Limit 256MiB로 설정되어 있습니다. 그런데 현재 Memory 사용량은 184MiB입니다. 우측의 Memory 관련 추이 그래프를 봐도 계속 Request 기준으로 100%를 초과하였고 Limit 기준으로도 70% 이상을 사용하고 있습니다.

CPU, Memory 관련 주요 와탭 메트릭은 다음과 같습니다.

대상 리소스ShortnameName설명
CPUCpuTotUsageContainer CPU Usage (millicore)컨테이너 CPU 사용률
CpuByRequestContainer CPU Usage by Request (%)컨테이너 CPU 요청 대비 사용률
CpuByLimitContainer CPU Usage by Limit (%)CPU Limit 기준 CPU 전체 사용률
MemoryMemWsContainer Memory Working Set (byte)컨테이너 메모리 working set
MemWsByRequestContainer Memory Working Set by Request (%)컨테이너 메모리 요청량 기준 working set 사용량
MemWsByLimitContainer Memory Working Set by Limit (%)컨테이너 메모리 할당량 기준 working set 사용량
노트

Pod가 실행 중인 노드에 사용 가능한 리소스가 충분하면 컨테이너에 설정된 Request 이상의 리소스를 사용할 수 있습니다. 와탭 메트릭 중 Container CPU Usage by Request (%), Container Memory Working Set by Request (%)의 값이 100%를 넘어설 수 있는 이유입니다.

예를 들어, 컨테이너의 Memory Request를 128MiB로 설정했다고 가정하겠습니다. 컨테이너(Pod)가 실행 중인 노드의 총 메모리가 4GiB이고, 해당 노드에 다른 Pod가 없는 경우 이 컨테이너는 128MiB이상의 메모리를 사용할 수 있습니다.

그 외 메트릭

와탭은 CPU, Memory 외에도 다양한 메트릭을 제공합니다.

  • Container Block I/O Read Byte (IoReadBytes)

  • Container Block I/O Write Byte (IoWriteBytes)

  • Container Network Receive Byte (NetRxBytes)

  • Container Network Transmit Byte (NetTxByes)

와탭 쿠버네티스 메트릭스에 대한 자세한 내용은 다음 문서를 참조하세요.