쿠버네티스 모니터링 방법

쿠버네티스 모니터링 방법

쿠버네티스는 어플리케이션을 관리,배포,자동 배분하는 컨테이너 오케스트레이션 툴입니다.

사용자는 쿠버네티스의 자동화 덕분에 시간 소모와 노동력이 많이 드는 일을 할 필요가 없습니다.

  • 어플리케이션 서비스 배포 자동화
  • 어플리케이션 네트워크 설치 자동화
  • 자동 빈 패킹
  • 어플리케이션 자동 스케일링
  • 어플리케이션 서비스 자원 배분
  • 인프라 전반에 서비스 배분
  • 어플리케이션 서비스 스케일 아웃
  • 어플리케이션 구성 사이에 노드 밸런싱
  • 자동 롤아웃 및 롤백

……..

쿠버네티스의 도입 배경

  • 데브 옵스 문화의 발달

개발자들은 비즈니스와 관련된 메트릭스와 어플리케이션을 통합하는 능력이 요구됩니다.

  • 컨테이너와 쿠버네티스의 발달

로깅, 디버깅, HA (high-availability) 컨테이너 기반의 인프라가 변화함에 따라 모니터링도 급격하게 변화하고 있습니다. 이전의 모니터링 툴로는 다룰 수 없는 소트프웨어와 서비스를 관리할 새로운 방법이 필요합니다.

….

모니터링 해야 할 대상

쿠버네티스 모니터링은 어플리케이션의 헬스를 확인하기 위해 필수적인 과정입니다.

  • 리소스: 리소스 모니터링은 클러스터와 어플리케이션 헬스를 이해하기 위해 필수적입니다.
  • 디스크: 임계치는 클러스터 사이즈와 상관이 없기 때문에, 디스크 사용량을 모니터링 하는 것은 디스크 볼륨을 모니터링 하는 것 보다 더 효율적입니다.
  • CPU: CPU모니터링은  Kube-state-metrics를 통해 가능하며 시스템, 사용자 사용량과 iowait 또한 모니터링 가능합니다.
  • 메모리: 메모리 모니터링 또한 Kube-state-metrics에서 가능하며 얼마나 많은 메모리가 사용되고 있고 얼마가 남았는지 보여줍니다.
  • Pod: Pod deployment 의 헬스는 쿠버네티스가 제대로 작동하는지 확인하기 위해서 필요합니다.
  • 네트워크: 네트워크 대역폭이 부족 할 수 있습니다. 따라서 데이터 사용량과 어플리케이션이 사용되는 패턴을 파악하는 것이 비용절감에 효율적입니다.  

[프로메테우스 아키텍쳐]

(출처: google.com)

MySQL, Nginx, Redis, Kafka 와 같이 프로메테우스 형식에서 지원되지 않는 메트릭은 별도의 exporter를 사용해야 합니다. 아니면 Pushgateway 라는 메트릭스를 수집하는 별도의 구성 요소가 필요합니다. 또한, 알람을 위해Alertmanger 가 대시보드를 보기 위해서 Grafana가 필요합니다.  

.

프로메테우스를 이용한 쿠버네티스 모니터링의 단점

  • 한정적인 가시성

프로메테우스의 가시성이 한정적이기 때문에 얻을 수 있는 정보가 한정적입니다. 따라서 문제 발생시 해결을 하는 것이 힘들고 시간 소모가 큽니다. 위의 프로메테우스 아키텍처에서 보이는 것처럼, 대시보드를 보기 위해 Grafana를 별도로 설치 해야 합니다.

  • 저장공간 부족

프로메테우스의 빌트인 저장 공간은 장기간 데이터 저장에 적합하지 않습니다.

..

NexClipper를 이용한 쿠버네티스 모니터링  

[NexClipper 아키텍쳐]

NexClipper는 프로메테스의 약점을 보완하기 위해 인플럭스DB와 프로메테우스를 모두 사용합니다. 머신러닝과 장기간 저장에 적합한 인플럭스DB를 기본으로 사용하며 서드파티(Third parties)를 설치하기 위해 프로메테우스를 사용합니다. NexClipper가 서드파티(Third parties) 설치가 가능한 프로메테우스를 사용함으로써, 개인의 선호에 다른 커스터마이즈가 가능합니다.

  • 손쉬운 설치 과정 및 관리

NexClipper를 이용하면 쿠버네티스 모니터링은 에이전트를 설치하는 것만큼 간단합니다. NexAgent만 설치하시면 됩니다. NexAgent를 Node Exporter, cAdvisor, Kube-state-metrics를 통합하고 대체하는 올인원 에이전트 입니다.  

프로메테우스가 제대로 작동하기 위해서는 Grafana, 서드파티 (Third parties)  exporter 등의 많은 구성요소들을 설치 해야 합니다. 반면 NexClipper는 설치 과정과 관리에 대한 노력이 거의 필요없는 Saas (Software-as-a-Service)로, 3분내에 설치가 가능합니다.

  • 사용자 관리

NexClipper는 유저 매니지먼트를 제공합니다.

  • 직관적인 사용

NexClipper는 설치하기 쉽고 직관적인 UI로 사용되고 있는 클러스터에 대한 모든 정보와 인사이트를 제공합니다. 서비스부터 호스트 서버까지의 전제적인 부분을 모니터링 하고 Grafana 없이 대시보드를 볼 수 있습니다.

  • 프로메테우스 사용 (향후)

NexClipper에 프로메테우스를 사용해서 커스터 마이즈가 가능합니다. NexClippr는 사용자의 편의를 위해 프로메테우스도 호환 가능합니다. 프로메테우스를 선호하신다면 설치를 해서 사용이 가능하고 데이터 저장도 가능합니다. 또한, 서드파티 (Third parties) 어플리케이션을 설치해서 사용 목적에 따라 커스터 마이징이 가능합니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다