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>

Reference