CKAD 를 준비하는 선에서 과정에서 정리한 내용으로, 실제로 쿠버네티스에서 로깅과 모니터링과 관련된 내용은 훨씬 더 방대할 수 있습니다.
Monitoring
- 쿠버네티스의 클러스터를 모니터링하고자 한다면, 주로 다음과 같은 데이터를 보고자 함일 것이다.
- Node 별 리소스 사용 현황
- Node 별 Pod의 갯수
- Pod 별 리소스 사용 현황
- etc …
- 쿠버네티스는 빌트인 모니터링 기능을 제공하고 있지 않지만, 여러가지 툴이 존재함.
- Metrics Server
- Prometheus
- Elastic Stack
- Data Dog
- dynatrace
- etc …
Metrics Server (모니터링 툴 예시)
- 하나의 클러스터를 기준으로 작동함.
- kubelet 내부 모듈인 cAdvisor (Container Advisor) 가 Pod의 퍼포먼스 메트릭을 수집하여 kubelet에 넘기는 역할을 하고, Metrics Server는 이를 수집 후, 통합하여 메모리에 저장함.
설치 방법
- Minikube를 사용할 경우
minikube addons enable metrics-server
- 그 외
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
메트릭 조회 방법
- Node 메트릭 조회 - kubectl top node
- Pod 메트릭 조회 - kubectl top pod
Logging
쿠버네티스에서 실행되고 있는 컨테이너의 로그는 다음과 같이 확인이 가능하다.
Pod 내 container 에서 발생하는 애플리케이션 로그 보기.
kubectl logs -f <pod-name>
Pod 내 두 개 이상의 container 가 존재할 경우, 로그를 보고자 하는 컨테이너 이름도 명시해야 함.
kubectl logs -f <pod-name> <container-name>