logo
문의하기
서비스리소스블로그아카데미
logo
문의하기
logo

데이터와 IT 흐름을 읽는 시선,
뉴스레터 EXEM View 구독하기

Subscribe

주식회사 엑셈

서울시 강서구 마곡중앙8로5길 40

Tel 02-6203-6300 ㅣ Fax 02-6203-6301

ⓒ EXEM Co., Ltd. All Rights Reserved.
개인정보 처리방침서비스 이용약관
  • 서비스

    • Database
    • Application
    • AIOps
    • LLMOps
    • Big Data
    • All-in-One
    • Consulting
  • 신청

    • 세미나
    • 사옥 투어
  • 회사

    • 기업 소개
    • 채용 안내
    • IR
    • 오시는 길
  • 자료

    • 제품 브로슈어
    • 제품 살펴보기
    • 도서 실습자료
  • awsaws
  • microsoftmicrosoft
  • oracleoracle
  • naver-cloudnaver-cloud
Part.5 Druid without Middle Manager
Part.5 Druid without Middle Manager
Part.5 Druid without Middle Manager
Part.5 Druid without Middle Manager

Part.5 Druid without Middle Manager

Part.1 Apache Druid란
Part.2 Druid Operator: 드루이드 오퍼레이터 도입으로 드루이드 설치부터 관리까지의 과정 개선
Part.3 Druid Tuning: 제한된 자원속에서 카프카 스트림으로부터 데이터 수집하는 기능(성능)의 최적화
Part.4 Druid Tiering: 데이터가 조회되는 빈도 기준으로 데이터를 구분
Part.5 Druid without Middle Manager (MM less): k8s 리소스(파드)를 사용한 드루이드 태스크 관리 개선

이번 글에서는 Apache Druid Middle Manager 없이 사용하는 법을 살펴보겠습니다.
  1. K8S환경에서 Middle manager 없이 드루이드 task 관리(mm less)
  1. MM Less의 특징
  1. MM Less 사용방법

K8S환경에서 Middle Manager 없이 드루이드 task 관리(MM Less)

드루이드에서 Middle Manager(이하 MM)는 데이터 수집, 압축 등을 수행하는 작업을 관리하는 서비스입고, K8S의 일부 기능인 Job과 Pod를 활용하여 이를 대체할 수 있습니다.

1. MM Less의 특징

기존 MM에서는 작업을 하나의 프로세스 형태로 실행했습니다. 이로 인해 서비스에 고정적인 자원을 할당하는 문제가 있었고, 필요에 따라 자원을 유동적으로 사용하는 것이 어려웠습니다. 또한, MM에 문제가 발생하거나 특정 작업에 문제가 생겨 MM에 영향을 미치면, 다른 작업에도 장애가 전파되는 문제가 있었습니다.
MM을 제거하고 K8S 환경을 사용함으로써 다음과 같은 특징을 얻을 수 있습니다.
  1. Worker node가 제공하는 범위 내에서 자원을 자유롭게 사용 가능
  1. MM 의존성 제거
  1. 장애 전파 최소화
  1. 작업 타입 별 자원 및 설정 관리 용이성 향상
 

2. MM Less 사용 방법

MM Less를 적용하는 방법은 아래와 같습니다.
  • extension 추가
  • task를 실행할 pod 스펙 작성
  • overlord에 task pod spec 추가
1. extension 추가
K8S 연동해서 사용하기 위한 extension을 다음과 같이 추가합니다.
druid.extensions.loadList=[“druid.kubernetes.overlord.-extensions”]
2. pod spec 정의
task가 사용할 수 있는 pod spec을 정의할 수 있도록 합니다.
pod spec은 다음과 같이 구성했으며, 환경과 구성에 따라 값이 바뀔 수 있습니다.
3. overlord에 pod spec 추가
MM Less를 사용하게 될 경우 task의 메타성 정보 관리는 overlord로 이관하게 됩니다. 따라서 overlord에 pod spec 정보를 올린 뒤 사용할 수 있도록 합니다.
configmap을 이용하여 yaml파일을 configmap에 저장한 뒤 서비스가 올라올 때 마운트 하는 형식으로 구성했습니다.
구성 후
notion image
구성 후 kubectl get job 명령어로 job을 통해 task가 생성되고 삭제되고 있는 것을 볼 수 있습니다.
이처럼 node가 허용되는 자원 속에서 자유롭게 생성되고 삭제가 됨으로써 자원을 효율적으로 사용할 수 있고, 각 task가 하나의 job형태로 구분되어서 task에 문제가 발생하더라고 다른 task에 장애가 전파되지 않을 수 있습니다.
node가 허용하는 자원 범위 내에서 작업이 자유롭게 생성되고 삭제됨으로써 자원을 효율적으로 사용할 수 있습니다. 각 작업이 하나의 Job 형태로 구분되어, 한 작업에 문제가 발생해도 다른 작업에 장애가 전파되지 않는 구조가 됩니다.
 
마치며
MM Less를 통해 자원을 효율적으로 사용하게 됨으로써 서비스를 안정적으로 관리할 수 있습니다. 또한 불필요한 자원을 계속 잡을 필요가 없어 운영비용 면에서도 상당한 이점이 있습니다.
 

 
 
함께 보면 좋은 아티클
Part.1 Apache Druid란? | 엑셈
드루이드 기본 기능과 사용되는 분야 알아보기
Part.1 Apache Druid란? | 엑셈
https://ex-em.com/ko/academy/Part.1-Druid
Part.1 Apache Druid란? | 엑셈
Part.4 Druid Tiering | 엑셈
데이터가 조회되는 빈도 기준으로 데이터 구분 방법 알아보기
Part.4 Druid Tiering | 엑셈
https://ex-em.com/ko/academy/Part.4-Druid
Part.4 Druid Tiering | 엑셈
Table of Contents
K8S환경에서 Middle Manager 없이 드루이드 task 관리(MM Less)1. MM Less의 특징2. MM Less 사용 방법