[Infra] Apache Mesos(Marathon)이란?

chrisjune
2 min readDec 7, 2019

--

아파치 메소스는 도커에 비교하여 오래되었습니다. 아주 큰 플랫폼과 고-신뢰성을 보장하기 위하여 디자인되었습니다. 원래는 클러스터를 관리하는 플랫폼입니다. Linux Cgroup을 사용하여 CPU, IO, 파일 시스템, 메모리 격리를 제공합니다. 분산된 시스템 커널 또는, 프레임워크에 컴퓨터 자원을 공급하는 클러스터 플랫폼이라고 할 수 있습니다.

Marathon은 Docker container를 오케스트레이트 하기위하여 Mesos를 활용하는 프레임워크입니다. 실제로 더 많은 작업을 하지만, 포스트에서는 컨테이너 관리 부분에만 초점을 두도록 하겠습니다.

Master

slave를 관리합니다. 안정성을 위하여 최소한 3대 이상으로 구성하고 zookeeper를 통하여 상태관리를 하며 leader master를 선정하고, 나머지 master는 standby 상태가 됩니다.

Slave

master로 부터 전달받은 모든 작업을 처리합니다.

Service Discovery

모든 작업과 Application instance를 Mesos-DNS 데이터베이스에 등록합니다.

Marathon-lb

HAProxy를 활용하여 Port 서비스를 제공하고, Mesos-DNS를 사용하지 않는 경우 Service discovery기능도 제공합니다.

Constraint

마라톤의 가장 강력한 기능중 하나입니다. 실행되는 어플리케이션을 노드별로, rack별로 또는 다양한 조건으로 제한 설정을 할 수 있습니다. 예를 들면 복잡한 mail 플랫폼이 있을 때, 단지 두개의 smtp-inbound 어플리케이션만 같은 rack에서 실행되도록 설정할 수 있습니다.

Metric

마라톤은 metrics을 제공하는데, graphite, statsd와같은 솔루션들과 쉽게 통합할 수 있습니다.

REST API

rest api로 모든 클러스터 관리 기능을 제공합니다. 특정 application에 상태 관리를 할 수 있고 , 관리자에 의해 이벤트 subscription도 가능합니다. 따라서 외부 어플리케이션에 통합할때 매우 유용합니다.

참고

--

--

No responses yet