섹션4: Logging & Monitoring

aeiou·2022년 3월 1일
0

Udemy-CKA

목록 보기
2/6
post-thumbnail

Monitoring

✏️ 무엇을 모니터링 하고싶은가?

Node level metrics

  • 클러스터의 노드 수
  • 얼마나 많은 노드가 정상인지
  • CPU, 메모리, 네트워크, 디스크 사용률과 같은 성능 확인

POD level metrics

  • POD의 수
  • CPU 및 메모리 소비와 같은 각 POD의 성능 메트릭

K8S는 모든 기능을 갖춘 내장 모니터링 Soulution 제공안함.

Opensource for monitoring

  • Metrics server
  • Prometheus
  • Elastic Stack
  • DATADOG
  • Dynatrace
  • Heapster (지금은 Deprecated) → Heapster 슬림버전 = Metric Server

Metrics server

  • Kubernetes 클러스터당 하나의 Metrics server 가질 수 있음.
  • Metrics server는 각 Kubernetes Node 및 POD 에서 메트릭을 검색함.
  • 집계하여 'in Memory' 로 저장함(Disk에 저장하지 않음).
  • Metric Server는 과거 성능 데이터를 볼 수 없음.
  • 이렇기 때문에 앞부분에서 이야기한 고급 모니터링 솔루션 중 하나에 의존해야 합니다.

POD의 metric 생성 과정

  • K8S는 kubelet(각 노드의 에이전트) 실행함.
  • K8S API 마스터 서버에서 명령을 받고, Node에서 POD을 실행하는 역할함.
  • kubelet cAdvisor 또는 Container cAdvisor 알려진 하위 구성 요소도 포함됨.

cAdvisor

  • cAdvisor는 Kubelet의 구성요소임
  • cAdvisor는 POD에서 성능 메트릭을 검색하고,
    kubelet API를 통해 성능 메트릭을 노출하여, Metric Server에서 사용할 수 있도록 하는 역할임.

minikube를 사용하는 경우

위 명령어를 통해 설치함

위 명령어를 통해 사용량 확인함

Logging

✏️ DOCKER Logging

  • event-simulator라는 도커 컨테이너를 실행하고 웹 서버를 시뮬레이션하는 임의의 이벤트를 생성함
  • Docker의 경우 이미 app에 의해 standard output으로 event를 생성하고 있다.

docker run -d {container 이름}

docker container를 background 모드로 사용하고 싶다면, -d 옵션을 사용함 => log를 볼 수 없음

docker run -d {container ID}

만약 log 보고 싶다면, 위명령 사용하면됨

📌 Kubernetes Logging

  • 동일한 image로 POD 생성
kubectl logs -f {POD 이름}

위 명령을 통해 log 확인 가능 (-f = 라이브로 로그)

  • POD은 여러 개의 docker container를 가질 수 있음.
  • 'image-processor'라는 컨테이너 추가.
kubectl logs -f {POD 이름} {container 이름}
  • 위와 같이 container 이름을 명시 해줘야함
  • 그렇지 않으면 이름을 지정하라는 메시지가 표시되어 실패합니다.

0개의 댓글