IT/CKA

CKA 준비과정 - Logging & Monitoring / Monitor Cluster Components, Logging

Primes 2023. 5. 29. 10:35
728x90

쿠버네티스의 Monitoring

쿠버네티스에서는 자체적인 모니터링 솔루션이 없다. 따라서 별도의 오픈소스 모니터링 툴을 이용해야 한다. 주로 사용되는 것은 Prometheus, Elastic Stack 등이 있겠다.

 

과거에는 Heapster 라는 모니터링 프로젝트를 사용했으나, 현재는 사용하지 않고 Metric Server 라는 간소화된 방식을 사용한다.

 

Metric Server 동작 방식은 아래와 같다.

- 클러스터당 메트릭 서버를 1개 생성한다. 해당 서버는 각 쿠버네티스의 노드 및 파드에서 메트릭을 가져와 메모리에 저장한다.

- Metric Server는 In-Memory 방식으로 동작한다. 따라서 메트릭을 디스크에 저장하지 않아 오랜 기간 동안의 누적 지표와 같은 데이터는 확인할 수 없다. => 별도의 모니터링 솔루션을 이용해야 함

- 쿠버네티스는 각 노드에 지시를 내릴 때, API 서버에 지시를 내리고 API 서버는 kubelet이라는 일꾼을 통해 파드에 명령을 실행하도록 한다.

- kubelet은 컨테이너 관리자인 cAdvisor 라는 기능을 가지고 있다. cAdvisor는 파드에서 메트릭 서버로 메트릭을 가져와 활용할 수 있도록 한다.

 

 

Metric Server 설치하기

1. minikube 활용하기

minikube addons enable metrics-server

minikube를 설치하고 enable하여 메트릭 서버를 활성화한다.

 

2. minikube 외 다른 환경

git clone https://github.com/kubernetes-incubator/metrics-server-git
kubectl create -f deploy/1.8+/

다른 환경을 이용할 경우, github 리포지터리로부터 메트릭 서버 파일을 내려받아 kubectl 을 통해 배포한다. 위 링크에서 내려받는 구성요소를 통해서 클러스터 내 각 요소들의 성능을 모니터링 할 수 있게된다.

 

설치 뒤에는 아래와 같이 명령어를 통해 성능 지표를 확인할 수 있다.

 

Container Logging

쿠버네티스의 로깅을 살펴보기 전, 기반이되는 도커의 메커니즘부터 살펴본다.

먼저 도커 컨테이너를 실행한다. 도커는 어플리케이션에서 자체적으로 이벤트 로그를 기록한다. 만약 숨기고 싶다면, -d 옵션을 사용하면 되고, 다시 보이게 하고 싶다면 -f 옵션을 사용하면 된다.

 

쿠버네티스에서 로그 확인을 살펴본다.

쿠버네티스에서도 도커와 동일하게 -f 명령어를 통해 로그를 확인한다. 해당 로그는 파드 내부 컨테이너에 대한 로그이다.

해당 로그는 파드가 아닌 컨테이너의 로그임을 유의해야 한다. 파드는 여러개의 컨테이너를 가질 수 있음을 기억하자.

 

따라서, 파드 안에 여러 개의 컨테이너가 있다면 로그 확인 명령을 내릴 때 컨테이너 이름을 명시적으로 기재해줘야 한다.

위와같이 yaml 파일에 컨테이너를 추가하여 파드를 재생성하였다. 이 때 로그를 확인해야 할 경우에는 컨테이너의 이름을 콕 집어서 입력해줘야 한다.

반응형