2015-02-19 10 views
5

Vedo Mesosphere che crea tutti i tipi di applicazioni su Mesos Framework come Hadoop, Kubernetes, ecc. Ma dal momento che ci sono le applicazioni Marathon per servizi di lunga durata, perché non usarlo? Per esempio. perché non installare i nodi Kubernetes su un gruppo di servizi Marathon? Perché implementare Kubernetes direttamente su Framework API? Perché la pianificazione è più efficiente in questo modo? La stessa domanda vale per l'implementazione di Jenkins, perché non eseguire Jenkins master/slaves in cima a Marathon ...Applicazioni di mesos, perché non usare la maratona per tutto?

risposta

4

Apache Mesos è un 2-level scheduler. Lo scopo di un framework è quello di fornire l'intelligenza della programmazione ad alto livello. Marathon offre la possibilità di pianificare un'attività nel cluster, accodare quell'attività per pianificare e ri-accodare attività che hanno avuto esito negativo. È ottimo per mantenere attivi i processi di lunga durata. È come lo init del datacenter. In quanto tale, viene comunemente utilizzato per assicurarsi che altri framework siano attivi e in esecuzione come Kubernetes-Mesos o Jenkins.

Esistono molte applicazioni per le quali questo livello di pianificazione è insufficiente. Marathon può e spesso viene utilizzato per eseguire cose come Apache Kafka, tuttavia questo spesso non è sufficiente in molte modalità di errore. Inoltre, Marathon non si cura se l'attività viene eseguita più volte sullo stesso nodo, tuttavia l'esecuzione di più nodi Kafka sullo stesso slave è una cattiva idea. Usando Hadoop come un altro esempio (dato che lo hai riferito), HDFS ha diversi tipi di nodi che devono essere gestiti; NameNode, DataNode e JournalNode. La maratona non conosce l'ordine per avviarli, o se questi possono essere collocati sullo stesso nodo o meno. Non sa come ridimensionare questa applicazione. Il framework HDFS gestisce quell'intelligenza.

Per quanto riguarda l'efficienza della pianificazione, non sono sicuro che sia l'obiettivo. Apache Mesos è uno schedulatore a 2 livelli per un motivo. È uno scheduler a 2 livelli altamente efficiente. Il valore della schedulazione a 2 livelli è di astrarre il tipo di problemi che ho descritto sopra a uno schedulatore di livello superiore (che è definito da Mesos come framework). La maratona è ancora un ottimo modo per pianificare e garantire un'elevata disponibilità ad altri framework.

+0

Grazie! Anche se sono ancora un po 'confuso ... Quindi se volessi eseguire un server web (JBoss, Nginx, Tomcat ...) su Mesos, avrebbe senso eseguirlo su Marathon? Potrei beneficiare di tutte le funzionalità HA? – user1340582

Problemi correlati