Certified Kubernetes Administration - 30
2024-06-22
- Kubernetes
- Cloud
Kubernetes 클러스터 모니터링
-
모니터링 필요성:
-
노드 수준의 메트릭: 클러스터 내 노드 수, 건강 상태, CPU, 메모리, 네트워크, 디스크 사용량.
-
포드 수준의 메트릭: 포드 수, 각 포드의 CPU 및 메모리 사용량.
-
-
모니터링 솔루션:
-
Kubernetes는 기본적으로 완전한 모니터링 솔루션을 제공하지 않음.
-
오픈 소스 솔루션: Metrics Server, Prometheus, Elastic Stack.
-
상용 솔루션: Datadog, Dynatrace.
-
Heapster는 초기 모니터링 프로젝트였으나 현재는 사용 중단됨.
-
-
Metrics Server:
-
Kubernetes 클러스터당 하나의 Metrics Server.
-
노드와 포드의 메트릭을 수집, 집계하여 메모리에 저장.
-
디스크에 메트릭을 저장하지 않아 과거 성능 데이터를 볼 수 없음.
-
고급 모니터링 솔루션을 사용해야 과거 데이터를 볼 수 있음.
-
-
메트릭 생성:
-
각 노드에서 실행되는 에이전트인 kubelet이 메트릭 수집 담당.
-
kubelet의 하위 구성 요소인 cAdvisor(Container Advisor)가 포드의 성능 메트릭을 수집.
-
cAdvisor가 kubelet API를 통해 메트릭을 노출하여 Metrics Server에서 사용 가능하게 함.
-
-
Metrics Server 배포:
-
로컬 클러스터에서는
minikube addons enable metrics-server
명령어로 활성화. -
다른 환경에서는 GitHub 저장소에서 Metrics Server 배포 파일을 클론하고
kubectl create
명령어로 필요한 구성 요소 배포. -
배포 후 Metrics Server가 데이터를 수집하고 처리할 시간을 줌.
-
-
성능 메트릭 보기:
-
kubectl top node
명령어로 각 노드의 CPU 및 메모리 사용량 확인. -
예: 마스터 노드의 CPU 사용량 8%, 약 166 밀리코어.
-
kubectl top pod
명령어로 Kubernetes의 포드 성능 메트릭 확인.
-
요약
-
Kubernetes 클러스터 모니터링은 노드와 포드의 성능 메트릭을 수집하고 분석하는 것을 포함.
-
기본적인 Metrics Server를 사용하여 실시간 성능 메트릭을 수집 가능하지만, 과거 데이터를 저장하지 않음.
-
Prometheus, Elastic Stack과 같은 고급 솔루션을 통해 더 강력한 모니터링 및 분석 가능.
-
Metrics Server는 kubelet의 cAdvisor를 통해 메트릭을 수집하고,
kubectl top
명령어를 통해 성능 메트릭을 확인할 수 있음.
Certified ...
Certified ...