[새싹] 현대IT&E 240109 기록 - Kubernetes

최정윤·2024년 1월 9일
0

새싹

목록 보기
49/67
post-custom-banner

16. 간단하게 사용할 수 있는 쿠버네티스 모니터링 도구

16.1 메트릭 서버를 이용한 파드 및 노드의 리소스 사용량 확인

  • 메트릭 파드를 설치하면 사용자는 간단하게 k top 명령어로 현재 노드와 파드의 CPU, 메모리 사용량을 확인할 수 있다.
    k top 명령어 실행 화면
$ k top nodes
$ k top pod
  • 사용자는 리눅스 환경에서 리소스 사용량을 확인하는 top 명령어와 유사한 k top 명령어로 쿠버네티스 환경에서도 편리하게 각 파드와 노드의 CPU, 메모리 사용량을 확인할 수 있다.
  • 메트릭 서버는 사용자의 k top 명령어를 API Server에서 전달받아 개별 노드에 실행 중인 kubeletdml cAdvisor에 전달해서 현재 파드와 노드의 자원 사용량을 가져온다.
  • cAdvisor는 컨테이너와 노드의 CPU, 메모리, 네트웤, 파일 등에 대한 다양한 자원 사용량을 백그라운드에서 자동 수집한다.
  • 프로메테우스, 데이터독 등의 외부 모니터링 솔루션 역시 cAdvisor의 /metrics/cadvisor API 엔드포인트에서 다양한 메트릭을 조회 및 수집한다.
## 메트릭 서버 설치하기
$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

18. 그라파나 - 쿠버네티스 모니터링 대시보드

  • 그라파나는 프로메테우스의 데이터를 토대로 사용자 대시보드를 제공하는 솔루션이다.

  • 그라파나는 프로메테우스 데이터뿐만 아니라 퍼블릭 클라우드, 라즈베리 파이 등과 같은 데이터 소스와 메트릭, 로그, 트레이스 등의 다양한 데이터 형식을 지원한다.

  • 데이터로 그래프나 차트 형태의 대시ㅗ드를 만들 수 있고 이를 다른 사람들과 공유할 수 있는 오픈소스 플랫폼이다.

    • 응답속도
      • 사용자 요청에 응답하는 소요 시간
  • 트래픽

    • 서비스 사용량
  • 장애

    • 단순 에러 외의 내부 응답 목표 시간인 10초 이상 지연된 요청을 포함한 전체 장애 건수
  • 포화도

    • 트래픽 증가 혹은 노드 장애 등의 상황이 발생했을 때 예비 노드에서 처리 가능한 시스템 자원 사용률
  • 모두 기본적인 내용이지만 실제 운영 환경에서는 제대로 지켜지지 않는 부분들이 있다.

  • 단순 하드웨어 측변의 자원 모니터링뿐만 아니라 애플리케이션 측면에서 응답 속도와 트래픽 등의 모니터링과 서비스 규모가 커졌을 때 현재 시스템이 수용할 수 있는 자원 예비량을 파악할 수 있는 대시보드 등이 필요하다.

  • 대시보드를 설계할 때는 위와 같은 요소를 고려해서 사전에 필요한 주요한 대시보드 목록을 선정하고 목표 응답시간 및 목표 사용자 수 등 모니터링 항목을 담당자와 협의해서 신중하게 정의하는 시간이 필요하다.

  • 대시보드를 만들 때 임원들이 보기 좋은 페이지를 만드는 데만 신경쓰는 어리석음을 범하지 말아야 한다.

  • 명확한 목표를 정해서 가능한 한 간단하고 정확한 질문에 답할 수 있는 직관적인 대시보드를 만들 필요가 있다.

  • 가능하면 적은 수의 대시보드에서 우너인이 되는 문제를 빠르게 찾을 수 있고 중복된 대시보드를 만들지 않도록 주기적으로 검토하는 작업이 필요하다.

18.1 프로메테우스-스택에 사전 포함도니 그라파나 대시보드 사용하기

  • 헬름 프로메테우스-스택으로 프로메테우스를 설치하면 헬름 차트에 이미 다양한 대시보드가 포함돼 있다.
  • 전반적인 쿠버네티스 클러스터 현황 정보, 노드와 파드의 상세한 자원 사용량, 쿠버네티스 주요 구성 요소 현황 대시보드 등을 제공한다.
  • 다른 설치 방법에 비해 헬름을 이용하면 기본 대시보드들이 포함돼 있어 관리자는 시간을 많이 절약할 수 있다.

18.1.1 그라파나의 기본 사용법

  • 그라파나는 현황을 한눈에 파악할 수 있는 대시보드 제공이 목적인 솔루션으로, 사용법 또한 매우 직관적이다.
## 로드밸런서 서비스의 외부노출
$ kgs
  • 프로메테우스 서비스 설정을 확인하면 그라파나 데이터 소스 설정에 등록된 서비스 이름과 포트와 동일하다.
  • 쿠버네티스 클러스터가 클러스터 내부에서 다른 파드와 통신하려면 서비스 이름과 포트를 이용하는 것을 확인할 수 있다.
  • 그라파나는 데이터 소스 설정만 돼 있으면 기본 설정은 모두 완료된다.

18.1.2 기본 대시보드 확인

  • 프로메테우스-스택 헬름 차트는 사전에 다양한 대시보드를 포함한다.
  • 대시보드를 선택하면 각 대시보드별로 상세한 내역을 확인할 수 있다.
  • 어떤 대시보드가 모니터링 목적에 부합할까?
    • 대시보드는 서비스 현황을 빠르게 파악할 수 있고 장애에 빠르게 대처할 수 있는 정보가 필요하다.
    • 사용자별로 각자 목적에 맞는 대시보드를 선택할 수 있다.

18.2 그라파나 공식 홈페이지의 템플릿 대시보드 추가하기

  • 그라파나의 주요 목적은 필요한 대시보드를 손쉽게 만드는 것이다.
  • 직접 만들 수도 있으나 전세계의 다양한 사용자들이 많이 사용하고 있는 검증된 대시보드를 가져오는 거솓 좋은 방법이다.
  • 그라파나는 공식 홈페이지에서 대시보드 공유 기능을 제공한다.
  • 검색을 통해 원하는 대시보드를 찾을 수 있다.
  • 선택지가 너무 많다는 어려움이 있다.
  • 여러번의 검색과 자기만의 조건을 다듬는 과정이 필요하다.
  • 노드와 파드의 자원 사용량 정보는 헬름 차트에 포함돼 있으므로 클러스터 전반의 정보가 필요하다.
  • kube-state-metrics 파드로 검색한다.
profile
개발 기록장
post-custom-banner

0개의 댓글