심플코더
간단한 코딩 공간
   

글쓰기    관리    수식입력
  • 분류 전체보기 (84)
    • AWS (1)
    • JavaScript (11)
    • 개인학습 (5)
    • DB (11)
    • OS (9)
    • Network (7)
    • DevOps (0)
    • TypeScript (1)
    • 개발 (1)
    • CKA (28)
hELLO · Designed By 정상우.
심플코더

간단한 코딩 공간

CKA

Kubernetes Monitoring

Intro

Kubernetes 클러스터를 모니터링하면서 가장 궁금한 부분은 아무래도 클러스터 내의 노드 개수, 각 노드의 상태, CPU, 메모리, 네트워크, 디스크 사용량과 같은 성능 지표들일 것이다.

 

따라서 이러한 모니터링 데이터를 수집하고 저장하기 위한 솔루션이 필요한데, 이를 위한 다양한 오픈소스 / 상용 솔루션들이 존재한다.

 

오픈소스 솔루션으로는 Metrics Server, Prometheus, Elastic Stack 등이 있으며 상용 솔루션으로는 Datadog, Splunk 등이 존재한다.

 

초기 Kubernetes에서는 Heapster라는 솔루션이 사용되었으나 현재는 Metrics Server가 사용되고 있다.

Metrics Server는 클러스터마다 하나씩 설치되며, 이 서버는 각 노드와 Pod으로부터 메트릭을 수집하고 이를 메모리에 저장하고 집계한다. 다만 Metrics Server는 메모리 기반이기때문에 디스크에 데이터를 영구저장하지 않아 과거 데이터를 볼 수 없다는 문제점이 존재한다.

 

Metric Data 수집 방법

Kubernetes는 각 노드에 kubelet이라는 agent를 실행한다. kubelet은 Kubernetes API 서버로부터 명령을 받고 Pod를 실행하는 역할을 담당한다. kubelet 내부에는 cAdvisor(Container Advisor)라는 서브 컴포넌트가 내장되어 있는데 이 컴포넌트는 Pod와 컨테이너의 성능 데이터를 수집하고 kubelet API를 통해 Metric Server가 접근할 수 있도록 제공하는 역할을 한다.

 

Metric Server를 클러스터에 배포한 이후에는

kubectl top node

kubectl top pods

 

위와 같은 명령어를 통해 지표를 확인할 수 있다.

'CKA' 카테고리의 다른 글

Kubernetes Deployment 업데이트와 롤백  (0) 2025.04.09
Kubernetes Logging  (0) 2025.04.02
Kubernetes Admission Controller의 두 가지 유형  (0) 2025.03.30
(TIL) Scheduler Profiles  (0) 2025.03.30
(TIL) Kubernetes Static Pods  (0) 2025.03.26
    'CKA' 카테고리의 다른 글
    • Kubernetes Deployment 업데이트와 롤백
    • Kubernetes Logging
    • Kubernetes Admission Controller의 두 가지 유형
    • (TIL) Scheduler Profiles
    심플코더
    심플코더

    티스토리툴바