마라톤(marathon)에는 fault tolerance와 locality를 극복할 수 있는 방법으로 constraints를 제공한다. 동일한 기능을 하는 데몬을 한 장비에 두면, 한 장비가 죽으면 더 이상 서비스를 진행할 수 없다.
그래서 가상 장비(virutal machine)에서는 anti affinity 라는 단어를 사용해 동일한 기능을 가진 서비스를 여러 장비에 분산시키면 fault tolerance와 locality를 지원한다.
<fault tolerance와 locality 소개>
https://www.bayt.com/en/specialties/q/215179/what-is-affinity-and-anti-affinity-rule-in-vmware/
Affinity rule, ensure that multiple virtual machines are always running on the same host. As such, if one of the virtual machines is vMotioned to a different host, the associated virtual machines must be moved as well.
http://mesosphere.github.io/marathon/docs/constraints.html
CLUSTER
allows you to run all of your app’s tasks on agent nodes that share a certain attribute. This is useful for example if you have apps with special hardware needs, or if you want to run them on the same rack for low latency.
A field of "hostname"
tells Marathon that launched tasks of the app/pod have affinity for each other and should be launched together on the same agent:
....
하나의 장비에 동일한 서비스(데몬)을 실행시키지 않으려면
marathon json에 다음을 추가한다.
"constraints": [["hostname", "UNIQUE"]]
'mesos and marathon' 카테고리의 다른 글
[marathon] 마라톤 lb의 포트별 설정 (0) | 2018.04.10 |
---|---|
[marathon] Insufficient resources 이슈 해결하기 (0) | 2018.04.10 |
mesos - docker mode 관련 도움이 되는 링크 (0) | 2017.11.17 |
마라톤(marathon) 설치/실행하기 (0) | 2017.04.26 |
메소스(mesos) 설치 및 실행하기 (0) | 2017.04.24 |