2015-08-11 12 views
9

Sto provando a eseguire un'operazione una tantum con Marathon. Sono in grado di avviare il contenitore delle attività, ma dopo il completamento del comando dell'attività, marathon esegue un'altra attività e così via. Come posso impedire a Marathon di eseguire più di un task/comando?Come eseguire un'attività una tantum con Apache Mesos/Marathon?

Oppure, se questo non è possibile con Marathon, come posso ottenere il comportamento desiderato?

risposta

9

Come un hack si può uccidere un compito maratona, alla fine, come suggerito qui: https://github.com/mesosphere/marathon/issues/344#issuecomment-86697361

Come rukletsov già accennato - Marathon è desigend per le attività di lunga durata: https://stackoverflow.com/a/26647789/1047843

Se Chronos non lo fa FIT nella vostra situazione è possibile utilizzare Jenkins con Mesos plugin: https://github.com/jenkinsci/mesos-plugin

Oppure si può provare a parlare con Mesos direttamente e scrivere la propria quadro: http://mesos.apache.org/documentation/latest/app-framework-development-guide/

Secondo me le due opzioni più semplici sarebbero Chronos e Jenkins.

+0

Più 1 per Chronos. Sono molte risposte diverse. –

+0

Per quanto riguarda l'attacco suicida usando l'API DELETE con curl, cosa possiamo fare se stiamo usando un container e non è stato installato curl? La copia/montaggio del file binario potrebbe non funzionare in quanto potrebbe dipendere dal sistema operativo di destinazione. – ambuj

6

Marathon is designed per servizi a lunga esecuzione, il che significa che riavvierà l'attività quando entrerà in uno stato terminale. A seconda della natura della tua attività, potresti voler dare un'occhiata ad altri framework Mesos, ad es. Chronos. Se si desidera avviare una singola attività, è possibile utilizzare lo strumento mesos-execute che accompagna Mesos.

+0

Ok, grazie, cercherò Chronos o '' mesos-execute''. –

+0

È possibile eseguire un servizio con Chronos ora (non programmato) e una volta? –

+1

Non sono un esperto di Chronos, ma dovrebbe capire bene ISO8601. Prova a passare "R1/..." come valore per la chiave "pianificazione" nella descrizione del lavoro. – rukletsov

0

@ Smile di sms: come @rukletsov ha scritto è possibile utilizzare gli intervalli di ripetizione ISO8601 per eseguire i servizi solo una volta. Dopo l'esecuzione il lavoro verrà automaticamente disabilitato da chronos. Utilizzare "R0/.." (ripetizione 0) per l'impostazione della pianificazione.

4

Poiché alla domanda è stata data risposta, è stato sviluppato un nuovo framework denominato Eremetic per la maratona che consente di eseguire una sola attività.

https://github.com/klarna/eremetic

Problemi correlati