Ich habe bisher große Erfolge mit Mesos, Marathon und Docker erzielt, um eine Flotte von Servern und die Container, die ich auf sie platziere, zu verwalten. Nun möchte ich jedoch etwas weiter gehen und Dinge wie die automatische Verknüpfung eines Haproxy-Containers mit jedem Haupt-Docker-Dienst, der gestartet wird, oder andere dämon- und containerisierte Dienste bereitstellen, die verknüpft sind und nur für den einzelnen übergeordneten Container verfügbar sind.Verknüpfte Docker-Container mit Mesos/Marathon
Normalerweise würde ich den Hilfsdienst zuerst mit einem Namen starten, dann, wenn ich den echten Dienst begann, würde ich es mit dem Helfer verknüpfen und alles würde gut gehen. Wie passt dieses Modell zu Marathon und Mesos? Es scheint zumindest jetzt, dass die Containerisierung einen einzigen Container voraussetzt.
Ich hatte eine Idee, den Hilfsdienst zuerst zu starten, auf welchem Host es auch finden konnte, und dann eine Einschränkung zum realen Dienst hinzuzufügen, die Hostname = Hilfsdienst-Hostname, aber das würde Probleme mit Ressourcenangeboten verursachen und Rassenbedingungen für diese Ressourcen.
Ich habe auch gedacht, um eine "Embed" oder "Deep-Link" -Funktionalität zu Docker, oder zu den Executor-Skripten, die die Docker-Container starten.
Bevor ich einen dieser Pfade hinunter ging, wollte ich herausfinden, ob jemand anderes dieses Problem gelöst hat, oder ob ich einfach nur furchtbar darüber nachgedacht habe.
Danke!
Eine Sache, die mir wichtig ist, ist die Lokalität von Containern. Ich könnte relativ leicht eine Art von Entdeckung finden, um andere Container zu finden, aber ich suche nach einer Optimierung darüber hinaus, die den Marathon zwingt, eine Gruppe von Containern (Think Nginx + Rails + Anmeldeinformationen Daemon) jeweils in ihren eigenen Containern zu starten. Offensichtlich muss ich einen Patch einreichen, sollte ich Marathon statt Docker ansehen? –
Nur um sicher zu gehen, dass ich es richtig verstehe - meinst du "... was den Marathon zwingt, eine Gruppe von Containern (...) in ihrem eigenen Host zu starten"? I.e. Force Container auf verschiedenen Hosts sein? – jpetazzo
Sorry, ich möchte die Gruppe auf einem einzelnen Host, eine lokale Haproxy an jeden Dienst zum Beispiel angeschlossen. Ich denke, der richtige Pfad ist hier ein benutzerdefinierter Mesos-Executor, der weiß, wie man zusätzliche Argumente von Marathon, fork und selbst verwaltet, um sicherzustellen, dass die gesamte Gruppe neu gestartet wird, wenn ein Teil stirbt. –