티스토리 뷰
1. 모니터링 구성요소
1) 노드 수준 메트릭
- 노드 상태 메트릭: 클러스트 내 노드의 수와 각 노드의 상태
- 리소스 사용량: CPU, 메모리, 디스크 I/O, 네트워크 대역폭 등의 사용량
2) 파드 수준 메트릭
- 파드 수 : 실행 중인 파드의 수
- 리소스 사용량: 각 파드의 CPU 및 메모리 사용량, 재시작 횟수, 상태(실행 중, 대기 중 등)
3) 컨트롤 플레인 매트릭
- API 서버나 스케줄러와 같은 컨트롤 플레인 구성요소에는 발생하는 메트릭은 시스템 작동 상태를 보여줌
- 스케줄링 지연 시간이나 대기중 인 파드 수 등을 확인
4) 주요 모니터링 도구
(1) Metrics Server : 경령화된 실시간 모니터링 솔루션
- 노드와 파드의 CPU 및 메모리 사용량 데이터를 수집
- kubectl top node, kubectl top pod 명령어로 확인 가능
(2) Prometheus
- Prometheus: 오픈 소스 기반의 강력한 모니터링 도구로, 장기 데이터 저장 및 쿼리 기능을 제공. Grafana와 통ㅎ바하여 시각화 대시보드를 구성. 알림 설정도 가능
(3) Elastick Search
- Elastic Stack은 중앙 집중식 로깅 및 모니터링 솔루션으로 강력한 검색 기능을 제공. 하지만 Pormetheus에 비해 설정이 더 복잡
5) 메트릭 생성과정
(1) kubelet: 각 노드에서 실행되며 파드를 관리하고 kubernetes API서버와 통신
(2) cAdivisor(Container Advisor): Kubelet의 하위 구성 요소로, 컨테이너 단위의 성능 데이터를 수집하여 Metrics Server에 제공
(3) Metrics Server: Kubelet에서 데이터를 받아 이를 집계하고 Kubernetes Metrics API를 통해 노출
2. 어플리케이션 로그
- 컨테이너화된 어플리케이션의 상태 및 동작을 이해하고 디버깅 하는데 중요한 역할을 함
1) Docker에서의 로깅
- Docker 컨테이너는 어플리케이션 로그를 표준 출력과 표준에러로 스트리밍
- 이를 통해 실행 중인 컨테이너의 로그를 쉽게 확인
(1) 로그 확인: docker logs <container id> 명령어를 사용하여 특정 컨테이너의 로그를 확인 가능
(2) 실시간 로그 스트리밍: docker logs -f <container id> 옵션을 사용하면 실시간으로 로그를 확인 가능
(3) 백그라운드 실행: 컨테이너를 백그라운드 모드로 실행(-d 옵션)하면 로그가 터미널에 표시되지 않으므로 위 명령어로 확인
2) 쿠버네티스에서의 로깅
- Dcoker와 유사한 방식으로 파드와 컨테이너 로그를 관리
- 단일 컨테이너 파드: kubectl logs <pod_name> 명령어로 해당 파드의 컨테이너 로그를 확인 가능
- 실시간 로그 스트리밍: kubectl logs -f <pod_name> 명령어를 사용하면 실시간으로 로그를 스트리밍
- 다중 컨테이너 파드: 파드에 여러 컨테이너가 있는 경우, kubectl logs <pod_name> -c <container_name> 명령어로 특정 컨테이너의 로그를 지정해야 하며, 그렇지 않으면 오류 메시지가 표시됨 .
3) 한계
- 쿠버네티스에서 제공하는 기본 로깅은 단기적인 디버깅에는 적합하지만, 오래된 로그는 보존되지 않은 점에서 장기적인 관리에는 부적합하다.
- 여러 노드에서 파드에서 생성된 로그는 각각 별도로 관리되므로 중앙 집중화가 부족
- ELK, Prometheus와 같은 중앙 집중식 로깅 솔루션을 통합하여 장기 보존 및 분석 기능을 추가해서 보완해야 한다.
'쿠버네티스' 카테고리의 다른 글
[쿠버네티스] 5. Application Management 2) Commands, Arguments (0) | 2024.12.11 |
---|---|
[쿠버네티스] 5. Application Management 1) Rolling Updates and Rollbacks (0) | 2024.12.11 |
[쿠버네티스] 3. 스케줄링 2) DaemonSets, Static Pods (0) | 2024.12.10 |
[쿠버네티스] 3. 스케줄링 1) Scheduling (0) | 2024.12.10 |
[쿠버네티스] 2. 쿠버네티스 오브젝트 Pod, ReplicaSets, Deployments, Services, Namespaces (2) | 2024.12.09 |