Mesos & CoreOS & 기타등등 요약
도커 클러스터 운영을 위한 솔루션
Mesos
+ Mesos는 Mesohpere(회사)가 만든 Data Center OS
+ 현재 아파치 재단에 의해 오픈소스 프로젝트로 운영
+ 데이터센터 내의 자원을 공유/격리/관리하는 솔루션
+ Twitter, Facebook, eBay, Riot Games(LOL 개발사)에서 이용
ZK: ZooKeeper
<<이미지 출처: https://www.digitalocean.com/community/tutorials/an-introduction-to-mesosphere>>
Mesos Marathon
+ Mesosphere가 만든 Mesos용 Framework (Mesos의 작업 관리자)
- Framework는 Mesos 구성요소 중 하나
- Mesos가 데이터센터의 커널이라면, Marathon은 init나 upstart 데몬에 해당
+ Mesos 위에 (도커) 컨테이너를 deploy하고 manage
- 도커 컨테이너를 deploy, run, scale 하려면 Marathon 0.7.0+ 와 Mesos 0.20.2+ 필요
+ 어플리케이션의 starting, stopping, scaling 을 위한 REST API 제공
CoreOS
+ CoreOS?
- Docker 구동에 최적화된 가볍고 최소화된 OS
- 컨테이너 클러스터 운영을 위한 OS
+ CoreOS의 특징
- 미니멀 OS
- 도커 컨테이너 지원
- 처음부터 클러스터를 고려 (Clustered By Default)
+ CoreOS는 거의 모든 플랫폼에서 실행 가능
- Vagrant, Amazon EC2, VMWare, OpenStack 기반 VM 및 커스텀 HW에서 실행 가능
<<이미지 출처: https://www.airpair.com/coreos/posts/coreos-with-docker>>
+ CoreOS : 미니멀 리눅스 OS
+ rkt 또는 docker : 컨테이너 런타임
+ etcd : HA를 보장하는 key-value 저장소
- 모든 호스트는 etcd에 접근하기 위한 로컬 endpoint를 제공
- 모든 어플리케이션은 항상 127.0.0.1:4001 에서 etcd 에 접근 가능
- etcd는 replicated 되어 관리되며, 모든 정보를 클러스터 전체가 공유함
+ systemd : 머신 단위 시스템 구동 도구
+ fleet : 클러스터 단위 시스템 구동 도구
- CoreOS 위에서 도커 컨테이너를 실행시킬 때 fleet와 함께 실행시키는 것을 권장
- fleet는 HA 보장; 서비스 컨테이너가 같은 머신/zone/region에 배치되지 않도록 관리
- fleet는 속성에 따른 배치(collocation with the same properties) 보장
- 속성값을 조정하여 서비스 아키텍처를 관리
Boot2Docker
+ Windows와 Mac OS에서 도커를 실행시킬 수 있는 도구
- 도커는 리눅스에서만 실행됨
- boot2docker는 내부적으로 VirtualBox를 이용
+ 도커 구동을 위해 만든 경량 리눅스 배포판을 이용
- 작은 크기(~24MB), 빠른 부팅(~5s)
ref
---
http://www.albireo.net/threads/45289/
http://mimul.com/pebble/default/2013/10/27/1382885361083.html
http://www.yongbok.net/blog/apache-mesos-cluster-resource-management/
https://github.com/mesosphere/marathon
https://coreos.com/
https://coreos.com/using-coreos/
http://www.slideshare.net/subicura/coreos-38279596
http://www.moreagile.net/2014/07/docker-coreos.html
http://majesty76.tistory.com/43
http://lunatine.net/about-systemd/
https://github.com/coreos/fleet
https://github.com/boot2docker/boot2docker
http://www.slideshare.net/pyrasis/learning-dockerandboot2docker