Mesos 소개
• 분산시스템 커널
– 리눅스 커널과 동일하며, 단지 추상화 레벨
만 다르다.
• 모든 머신에서 동작하며, 실행 어플리케이션
에 대해 리소스관리와 스케쥴링 API를 제공.
• Mesosphere = Mesos + Marathon + Chrono
s
• Marathon은 작업(컨테이너)관리담당이며,
Chronos는 작업스케쥴러이다.
3.
Mesos 소개
• 아파치Top Level 프로젝트
• 트위터, 에어비앤비, 미소스피어가 사용
• 구글은 Kubernetes용 Mesos 서비스중
(https://google.mesosphere.com/)
• 운영시 10000대 노드까지 확장가능
• 패키지와 서포트는 미소스피어 담당
• 기본적으로 Docker지원
• 튜토리얼 코스
http://docs.mesosphere.com/intro-course/
4.
Mesos 노드추상화
• StaticPartitioning은 스케일과 장애대응이 어렵다.
• Mesos의 노드들은 모든 Task에 대해 공유된다.
5.
Mesos 동작구성도
• Mesos에서Docker는 작업의 Type중 하나이다.
• Zookeeper를 통해 HA를 구성한다.
• Scheduler는 Marathon을 사용하거나, 직접 개발이 가능하다.
Mesos 동작원리
1. 슬레이브에여유 리소스가 생기면, 마스터에게 여유정보를
통보한다.
2. 할당정책에 따라서, 마스터는 얼마나 많은 리소스가 각 프레
임워크에 할당되었는지 결정한다.
3. 그다음, 마스터가 제안를 보내고, 스케줄러는 어는 제안 리소
스가 받아들여졌는지 선택한다.
4. 프레임워크가 제안 리소스를 받아들이면, 실행할 작업내용을
Mesos에게 보낸다.
5. 적합한 리소스를 실행기에 할당한 슬레이브에게 마스터는 차
례대로 작업들을 보낸다.
6. 최종적으로, 프레임워크는 작업을 실행하게 된다.
11.
Scheduler 개발
import org.apache.mesos.MesosSchedulerDriver;
importorg.apache.mesos.Protos;
import org.apache.mesos.Protos.*;
import org.apache.mesos.Protos.TaskID;
import org.apache.mesos.Scheduler;
import org.apache.mesos.SchedulerDriver;
public class MyScheduler implements Scheduler {
// Override Scheduler Functions like resourceOffers, etc.
}
* 리소스 할당등의 스케쥴러를 개발할수 있다.
12.
Executor개발
import org.apache.mesos.Executor;
import org.apache.mesos.ExecutorDriver;
importorg.apache.mesos.MesosExecutorDriver;
import org.apache.mesos.Protos.Environment.Variable;
import org.apache.mesos.Protos.*;
import org.apache.mesos.Protos.TaskID;
import org.apache.mesos.Protos.TaskStatus;
public class MyExecutor implements Executor {
// Override Executor Functions such as launchTask, etc.
}
* 작성실행기등의 Executor를 개발할수 있다.