본문으로 건너뛰기

Kubernetes Pod 모니터링

이제 모든 관련 문서를 확인했습니다. 상세한 답변을 드리겠습니다.


exemONE Kubernetes Pod 모니터링 상세 가이드

exemONE의 Kubernetes > Pod 메뉴에서 Kubernetes 클러스터의 파드를 종합적으로 모니터링할 수 있습니다. 화면은 Filters, Pod Card, Pod Map, Pod List로 구성되며, 각 파드를 클릭하면 Pod Detail Slide에서 8개 탭의 상세 정보를 확인할 수 있습니다.

참고 문서: Kubernetes Pod

구성 요소설명
Global Time모니터링 재생 여부를 선택 (실시간 데이터만 조회 가능)
Filters파드 화면의 필터 항목 선택
Pod Card파드의 상태 별 개수를 카드 형태로 표시
Pod Map모니터링 대상 별 상태를 헥사 맵으로 표시
Pod List파드 목록을 Grid 형태로 표시

1. Filters (필터)

참고 문서: Kubernetes Pod Filters

항목설명
Cluster클러스터 하위의 필터 항목을 보여줍니다. 접기/펼치기 가능합니다.
Search필터 항목 검색 기능입니다. 대소문자 구분 없이 입력하며, 검색 결과가 없을 경우 'No data.'를 보여줍니다.
Filter Item항목을 전체 선택한 상태로 보여줍니다. 필터 항목 선택에 따라 파드 화면이 변경되며, OR 조건으로 데이터를 보여줍니다. 접기/펼치기 가능합니다.

2. Pod Card (파드 카드)

참고 문서: Kubernetes Pod Card

파드의 상태 별 개수를 카드 형태로 보여주는 화면입니다.

항목설명
Total전체 파드 개수를 보여줍니다. 클릭 시 파드 맵과 파드 목록에서 전체 파드를 보여줍니다.
PendingPending 상태의 파드 개수를 보여줍니다. 클릭 시 해당 상태의 파드만 필터링합니다.
RunningRunning 상태의 파드 개수를 보여줍니다. 클릭 시 해당 상태의 파드만 필터링합니다.
SucceededSucceeded 상태의 파드 개수를 보여줍니다. 클릭 시 해당 상태의 파드만 필터링합니다.
FailedFailed 상태의 파드 개수를 보여줍니다. 클릭 시 해당 상태의 파드만 필터링합니다.
UnknownPod와 통신할 수 없는 파드 개수를 보여줍니다.

3. Pod Map (파드 맵)

참고 문서: Kubernetes Pod Map

파드의 개별 상태를 헥사 맵(Hex Map) 으로 보여주는 화면입니다.

헥사 상태 색상

상태표시
Pending
Running
Succeeded
Failed
Unknown

마우스 오버 시 해당 파드의 다음 데이터를 보여줍니다:

  • Namespace
  • Containers
  • Controlled by
  • Node
  • QoS
  • Age
  • Status
  • Alert

클릭 시 해당 파드의 Pod Detail Slide가 열립니다.


4. Pod List (파드 목록)

참고 문서: Kubernetes Pod List

파드 목록을 Grid 형태로 보여주는 화면입니다.

기능

항목설명
SearchPod Name을 검색합니다. 대소문자 구분 없이 입력합니다.
Option클릭 시 Grid의 옵션(컬럼 설정 등)을 보여줍니다.

Grid 수집 항목

항목설명
Pod Name파드의 이름 (클릭 시 Pod Detail Slide 오픈)
Namespace파드가 배포되어 있는 Namespace의 이름
Containers파드 내에 있는 Containers 수
Restarts Count파드의 Restarts Count 수
Controlled By파드의 Controller Type
Node파드가 배포되어 있는 Node의 이름
QoS파드의 QoS
Age파드의 Age (가동 시간)
Status파드의 현재 Status
CPU Usage/Limits (%)파드의 Limits 대비 CPU Usage
Mem Usage/Limits (%)파드의 Limits 대비 Mem Usage

5. Pod Detail Slide (파드 상세 슬라이드)

참고 문서: Kubernetes Pod Detail Slide

Pod List 또는 Pod Map에서 파드를 클릭하면 열리는 상세 화면입니다. 8개 탭으로 구성됩니다.

구성 요소설명
Title선택한 파드의 이름
Slide History슬라이드 이력 탐색
Close클릭 시 디테일 슬라이드 닫기
TabInformation, Metric, Event, YAML, Log, Container, PVC, Alert

5.1 Information 탭

참고 문서: Kubernetes Pod Information

파드의 기본 정보를 확인하는 화면입니다.

항목설명
Pod Name파드 이름
Cluster파드가 배포되어 있는 클러스터 이름
Error reason에러 원인 (파드에 Error가 발생한 경우 표시)
Node파드가 배포되어 있는 노드 이름
Namespace파드가 배포되어 있는 네임스페이스 이름
Owner References파드가 속한 Owner의 정보
Service파드와 연결되어 있는 Service
Pod IP파드가 사용 중인 IP
Status파드의 현재 상태
Alert마지막 발생된 알람 정보
Phase파드의 Lifecycle 단계
Restart Count파드의 재시작 수
Ready파드의 Ready 상태
Age파드의 동작 시간
Label파드가 가지고 있는 Label

5.2 Metric 탭

참고 문서: Kubernetes Pod Metric

파드의 성능 지표를 차트로 확인하는 화면입니다. Default 최근 5분 데이터를 보여줍니다.

지표설명
CPU Used파드의 CPU 사용량
CPU Throttling CountCPU Throttling 발생 횟수
CPU ThrottlingCPU Throttling 상태 지속 시간
Memory Usage파드의 메모리 사용량
Memory Workingset파드의 Workingset 메모리
Memory OOM Event파드의 OOM(Out of Memory) 이벤트
Network Receive네트워크 수신량
Network Transmit네트워크 송신량
Network Receive Errors네트워크 수신 에러 수
Network Transmit Errors네트워크 송신 에러 수
Disk Read디스크 읽기량
Disk Write디스크 쓰기량

5.3 Event 탭

참고 문서: Kubernetes Pod Event

파드 관련 Kubernetes 이벤트를 확인하는 화면입니다. Default 최근 10분 데이터를 보여줍니다.

항목설명
Type발생한 이벤트의 Type
Create Time이벤트가 발생한 시간
Kind이벤트의 Kind
Name해당 Kind의 이름
Namespace이벤트가 발생한 Namespace
Reason이벤트의 Reason
Message발생한 이벤트 상세 메세지

5.4 YAML 탭

참고 문서: Kubernetes Pod YAML

해당 파드의 YAML 정의를 확인하는 화면입니다.

항목설명
YAML파드에 적용된 YAML을 보여줍니다
Copy클릭 시 텍스트가 복사됩니다

5.5 Log 탭

참고 문서: Kubernetes Pod Log

파드의 로그를 확인하는 화면입니다. 다양한 로그 검색 기능을 제공합니다.

기능설명
Radio Button검색할 로그 선택: Search current log (최근 로그) / Select Time (특정 시간 로그, 클릭 시 Time 활성화)
Toggle최근 로그 출력 방식: Current Head Log (앞부분) / Current Tail Log (뒷부분)
Check box이전 종료된 컨테이너의 로그 출력 여부 선택
Line로그 출력 라인 수 설정
Get현재 로그 목록 데이터 조회
Copy텍스트 복사
Expansion새로운 Current Log 창 생성

5.6 Container 탭

참고 문서: Kubernetes Pod Container

파드 내 컨테이너 목록을 확인하는 화면입니다.

Grid 수집 항목

항목설명
Container Name컨테이너의 이름 (클릭 시 컨테이너 디테일 슬라이드 오픈)
StatusContainer의 현재 Status
Alert마지막 발생된 알람 정보
vCorevCore 개수
CPU LimitContainer의 CPU Limit
CPU Usage/Limit(%)Container의 CPU Limit 대비 사용량
CPU Usage/Node Alloc(%)Node의 할당된 사용량 대비 CPU Usage
Memory LimitContainer의 Memory Limit
Mem Usage/Limit(%)Container의 Memory Limit 대비 사용량
Mem Usage/Node Alloc(%)Node의 할당된 사용량 대비 Mem Usage
RXContainer의 네트워크 수신(RX)
TXContainer의 네트워크 송신(TX)
ImageContainer의 Image
AgeContainer의 Age

5.7 PVC 탭

참고 문서: Kubernetes Pod PVC

파드에 연결된 PVC(Persistent Volume Claim)를 확인하는 화면입니다.

Grid 수집 항목

항목설명
PVC NamePVC 이름
ClusterPVC가 생성되어 있는 Cluster 이름
NamespacePVC가 생성되어 있는 Namespace 이름
Storage Class NamePVC의 Storage Class 이름
FinalizersPVC의 Finalizers
StoragePVC의 스토리지 크기
AgePVC의 생성 시간
Access ModesPVC의 Access Mode
StatusPVC의 상태
LabelsPVC의 레이블

5.8 Alert 탭

참고 문서: Kubernetes Pod Alert

파드 관련 알람 이력을 확인하는 화면입니다.

항목설명
Rule Name룰의 이름 (클릭 시 Alert Detail Slide 오픈)
Alert NameAlert 이름
TargetAlert 발생 타겟
Last Triggered최근 Alert 발생 시간
Rule Type룰의 유형
Last Alert마지막 Alert 항목 (Normal / Warning / Critical)

6. Pod OS 리소스 사용률(Usage) 지표

참고 문서: Pod OS 리소스 사용률 지표 가이드

exemONE K8S Agent에서 수집하는 Pod 리소스 사용률 산출 방식입니다.

6.1 Pod CPU Usage

  • 설명: limit 값이 설정된 경우에만 사용 가능합니다. limit 값이 없는 경우 Pod CPU Usage By Node Allocatable 지표 사용을 권장합니다.
  • 계산식: cpu_usage / cpu_limit
  • v3.0.5 이후 변경 사항:
    • limit을 설정하지 못하면 값은 0으로 처리됩니다.
    • 일부 컨테이너만 limit이 설정되어 있는 경우, 해당 Pod는 unlimit(0)으로 처리됩니다.

6.2 Pod Memory Usage

  • 설명: limit 값이 설정된 경우에만 사용 가능합니다. limit 값이 없는 경우 Pod Memory Usage By Node Allocatable 지표 사용을 권장합니다.
  • 계산식: memory_working_set / memory_limit
  • v3.0.5 이후 변경 사항: CPU와 동일. 종료된 파드 컨테이너는 캐싱하지 않습니다.

6.3 Pod CPU Usage By Node Allocatable (v3.0.5+)

  • 계산식: (cpu usage * 100) / alloc_cpu
  • limit의 합이 node의 allocate 값을 초과할 경우, limit의 합은 node의 allocate 값으로 처리됩니다.

6.4 Pod Memory Usage By Node Allocatable (v3.0.5+)

  • 계산식: (memory usage * 100) / alloc_memory
  • limit의 합이 node의 allocate 값을 초과할 경우, limit의 합은 node의 allocate 값으로 처리됩니다.

7. Pod CPU/Memory Limit, Request 수집 방식

참고 문서: Pod CPU/Memory Limit Request 수집 방식

Pod List에 출력되는 CPU Request, CPU Limit, Memory Request, Memory Limit 값은 Pod 내의 모든 Container에 대한 합으로 계산됩니다.

확인 방법:

  1. Pod Detail > YAML 탭: 각 Container의 리소스 사용량 확인 (initcontainer, containers > resources 하위)
  2. Pod Detail > Container 탭: 각 Container의 리소스 사용량 확인
  3. Container Detail > Information 탭: 개별 Container의 리소스 사용량 확인

8. Pod 상태 알람 Metric

참고 문서: K8S Metric Alert Pod 상태 알람 사용 가이드

K8S Pod 상태 알람을 위해 추가된 3건의 metric입니다:

Metric설명단위
Pod Container Restart Count파드 내에 속한 컨테이너의 restart count 합계 수집count
Pod Abnormal Phase Period파드의 비정상 phase가 지속된 시간값 수집sec
Pod Normal Phase Period파드의 정상 phase가 지속된 시간값 수집sec

알람 설정 예시

  1. Pod 재시작 횟수가 1시간 동안 5회/10회 이상인 경우 알람 발생 (warning >=5count, critical >= 10count)

    • 메트릭: Pod Container Restart Count
  2. Pod 상태가 2분/3분 이상 RUNNING이 아닌 경우 알람 발생 (warning >=120sec, critical >= 180sec)

    • 메트릭: Pod Abnormal Phase Period

9. Pod CLI 및 삭제 요청 권한

참고 문서: Pod CLI 및 삭제 요청 권한 설정 가이드

Pod Detail 화면에서 Pod CLI 및 삭제 요청 기능을 사용하려면 k8s-agent에 해당 권한이 부여되어야 합니다.

K8S-Agent ClusterRole 권한 설정 (exem-k8s-agent.yaml)

- apiGroups:
- ""
resources:
- pods/exec
verbs:
- create
- apiGroups:
- ""
resources:
- pods
verbs:
- delete

exemONE 역할 권한 기본 설정

역할기본 권한
Master권한 있음 (기본값)
Admin권한 있음 (체크박스 선택 상태)
User권한 없음 (체크박스 해제 상태)
  • front v3.0.411.39, api v3.0.411.37 버전부터 적용
  • 역할 권한은 관리 화면에서 수정 가능

10. Pod Event 알람 발생 조건

참고 문서: Event Alert Pod Event 알람 발생 조건

수집되는 이벤트의 카운트가 아닌 실제 이벤트의 카운트 차이 값(delta_count) 을 계산하여 이벤트 알람을 발생합니다.

  • delta_count: 직전 이벤트 대비 늘어난 이벤트 카운트 (agent → receiver에서 전달한 값)
  • check_count: 집계범위(Aggregation Scope) 내에서 들어온 이벤트에 대한 delta_count의 합 (알람 발생 기준 카운트)

11. 수집 항목 종합 정리

카테고리수집 항목
파드 상태Status (Pending/Running/Succeeded/Failed/Unknown), Phase, Alert, Ready, Restart Count, Age
기본 정보Pod Name, Cluster, Namespace, Node, Owner References, Service, Pod IP, Error reason, Label, QoS, Controlled By, Containers 수
Metric 성능 지표 (12개)CPU Used, CPU Throttling Count, CPU Throttling, Memory Usage, Memory Workingset, Memory OOM Event, Network Receive, Network Transmit, Network Receive Errors, Network Transmit Errors, Disk Read, Disk Write
리소스 사용률CPU Usage/Limits (%), Mem Usage/Limits (%), Pod CPU Usage By Node Allocatable, Pod Memory Usage By Node Allocatable
알람 전용 Metric (3개)Pod Container Restart Count, Pod Abnormal Phase Period, Pod Normal Phase Period
Container 탭 지표Container Name, Status, Alert, vCore, CPU Limit, CPU Usage/Limit(%), CPU Usage/Node Alloc(%), Memory Limit, Mem Usage/Limit(%), Mem Usage/Node Alloc(%), RX, TX, Image, Age
PVC 탭 지표PVC Name, Cluster, Namespace, Storage Class Name, Finalizers, Storage, Age, Access Modes, Status, Labels
이벤트 정보Type, Create Time, Kind, Name, Namespace, Reason, Message
알람 정보Rule Name, Alert Name, Target, Last Triggered, Rule Type, Last Alert
YAML파드의 Kubernetes YAML 정의

12. 접근 방법

  1. exemONE에 로그인합니다.
  2. 좌측 메뉴에서 Kubernetes > Pod를 클릭합니다.
  3. Filters에서 모니터링할 Cluster 및 필터 항목을 선택합니다.
  4. Pod Card에서 상태별 파드 수(Total, Pending, Running, Succeeded, Failed, Unknown)를 확인합니다.
  5. Pod Map(헥사맵)에서 전체 파드의 시각적 상태를 파악하고, 마우스 오버로 상세 정보를 확인합니다.
  6. Pod List에서 각 파드의 Namespace, Containers, Restarts Count, CPU/Mem Usage 등 핵심 지표를 Grid 형태로 확인합니다.
  7. 특정 파드를 클릭하면 Pod Detail Slide가 열리며, 8개 탭(Information, Metric, Event, YAML, Log, Container, PVC, Alert)을 통해 상세 모니터링이 가능합니다.