용어
오브젝트 - 쿠버네티스에 배포된 자원
세션1: 쿠버네티스 옵저버빌리티(observability) 설명
쿠버네티스가 필요한 이유
- 빠른 대응을 위해 서비스 단위를 세분화(MSA)
- 마이크로 서비스를 원활하게 배포하기 위한 컨테이너의 등장
- 컨테이너의 등장 -> 각 서비스를 독립적인 환경으로 분리하기 위한 기술
- 여러 개의 컨테이너를 자동으로 관리(오케스트레이션)
쿠버네티스 옵저버빌리티(observability)
- 모니터링보다 확장된 개념
- 파드 pending 상태 파악 및 영향도 체크 가능
- 해당 기능을 위한 추가 관리가 필요함.
- metrics, trace, log
와탭 설명
- 옵저버빌리티 서비스 제공
- 오브젝트 매니페스트 제공
- 주기적으로 수집하여 과거 매니페스트도 제공함.
kube api server 모니터링
- 클러스터 전반에 발생하는 통신을 제어함.
- NKS 등 서비스를 사용해도 관리가 필요함.
- kubectl 커멘드 속도가 느리다면 api server 이슈일 수 있음
- api server 부하가 많아지면 커멘드도 느려질 수 있음.(api server 에서 응답을 제공함.)
pod 시작 분석
- 파드 시작 시, 발생하는 리소스를 분석하여 리퀘스트/리밋 설정에 도움을 주는 와탭 서비스
- 어떻게 만드는지 생각해보기.
와탭 helm 지원
컨테이너, 파드 상태 분석
와탭 인그레스 모니터링
- 인그레스 -> 파드 까지의 과정까지의 흐름을 한번에 제공한다.
- (사견) 이 오브젝트들을 차트로 묶어서 관리한다면 가능함.(아르고CD 에서 흐름을 보여줌.)
데이터 관리
- file db 자체 생성하여 관리함.
- 모니터링 특성 상, read/create 를 주로 함
- 위 관점에 맞춰 적은 양으로 많이 저장하고 빠르게 조회하기 위해 파일 디비 수동 관리. => 저장량이 줄어 비용이 감소함.
- 자체 파일 db 용 mxql(metricsQueryLanguage) 자체 개발하여 쿼리 제공
세션2: 쿠버네티스 모니터링 트러블 슈팅
1. 파드 팬딩
- 노드 자원 부족
- 이미지 없음.
- taint 로 인한 스케쥴링 거부
2. 서비스가 느린 경우
- 탐색 방법: 인그레스 -> 서비스 -[kube proxy]> 노드 -> 파드 -> application
- 원인(다른 원인이 있을 수 있음.)
- 특정 노드 cordon 으로 스케쥴링에서 제거된 경우
- 스케쥴링 가능한 노드가 줄어들어 CPU, Memory 자원이 부족해짐.
- 타 팀의 리소스가 배포된 경우
- 특정 파드 메모리가 증가해 다운되는 경우
- 파드가 재시작되는 동안 연계된 서비스 응답은 느려짐.
cAdviser
메모리 사용량 수집
가상화 메모리 사용량 측정