Ein noch wenigen bekanntes Tool zur Container-Orchestrierung Rancher als Aufpasser über eine Herde Container
Immer mehr Services wollen installiert, verwaltet und aktuell gehalten werden. Das gestaltet sich manchmal wie das Im-Zaum-halten einer Herde mehr oder minder wilder Kühe. Da ist es nur konsequent, eine Lösung zum Management entsprechender Umgebungen Rancher zu nennen.
Anbieter zum Thema

Es wird in Services gemacht, Dienste werden in Docker-Container "eingesperrt". In Cloud-Umgebungen und insbesondere auch bei Platform-as-a-Service-Ansätzen spielen Container eine immer größere Rolle. Der Einsatz von Container-Technologie bietet Entwickler bei Deployment, Integration und Testing eine Reihe von Vorteilen. Passende Umgebungen oder Systeme stehen schnell und häufig im Self-Service zur Verfügung, ohne dass die IT-Abteilung zeit- und arbeitsaufwändig ganze Server bereitstellen muss.
Diese Vorteile führen aber auch zu neuen Herausforderungen: So schnell und einfach wie sich neue Container erzeugen lassen, so schnell entstehen auch immer mehr Instanzen. Man sieht sich eher früher als später mit Dutzenden von Containern konfrontiert, die verwaltet, kontrolliert und gewartet werden wollen. Spätestens dann stellt sich die Frage nach geeigneten Werkzeugen.
Viele Open-Source-Lösungen unter einem Dach
In diesem Umfeld spricht man von der Orchestrierung der Container-Landschaft. Und so wie sich die Container-Technologie generell im Open-Source-Umfeld entwickelt hat, so gibt es auch für die Orchestrierungsaufgaben eine Vielzahl von Lösungen als Open-Source-Software. Mit großer Auswahl kommt natürlich auch die Qual der Wahl: Welcher Ansatz ist für meine Umgebung der passende? Eine Lösung vereint viele unterschiedliche Projekte unter einem Konzept und einer Oberfläche: Rancher von Rancher Labs.
Rancher Labs aus Cupertino in Californien startete 2014 mit der Idee, verschiedene Herausforderungen rund um das Thema Container zu adressieren. Neben Rancher OS, einer speziellen Linux-Distribution als Basis für Container-Installationen, stellt Rancher als Orchestrierungs- (oder vielleicht besser als Meta-Orchestrierungs-)Werkzeug den Schwerpunkt der Entwicklungen von Rancher Labs dar.
Im inzwischen 7. Major Release
Rancher steht in der aktuellen Version 1.6.x (zuletzt 1.6.7) für Ubuntu, Red Hat Enterprise Linux / CentOS und Rancher OS und damit bereits in der siebten Major-Release-Auflage zur Verfügung. Was leistet Rancher, das unter der Apache License in der Version 2.0 als Open-Source-Software zur Verfügung steht?
Es gibt bereits einige Werkzeuge zum Umgang mit Docker-Containern, die von der Verwaltung über Clustering bis hin zum Load-Balancing reichen, zum Beispiel Kubernetes, Docker Swarm oder Mesos von Apache. Rancher geht das Thema etwas abstrakter an und stellt einen – auch optisch ansprechenden – Rahmen zur Verfügung, um eine Reihe von Anforderungen für Management und Betrieb einer oder auch mehrerer Docker-Umgebungen zu adressieren.
Grundsätzliches
Rancher ist selbst auch Docker-basiert und wird in Form von verschiedenen Containern für unterschiedliche Aufgaben installiert. Zum einen gibt es einen oder mehrere Master-Server, welche die zentralen Aufgaben der Verwaltung und das Web-Front-End übernehmen. Auf jedem Host der Container-Umgebung (physikalisch oder virtuell) wird darüber hinaus ein Client-Container benötigt, der über eine Verbindung zum lokalen Docker-Socket verfügt. Auf diesem Weg kann Rancher dann neue Container spawnen beziehungsweise erstellen.
Hochverfügbarkeit
Rancher ermöglicht es, mit einfachen Mitteln die Hochverfügbarkeit einer Umgebung sicherzustellen. Durch die Anbindung der Master an eine externe MySQL-Instanz, welche die Informationen über die Mitglieder eines High-Availability (HA)-Verbundes vorhält, und die Verwendung eines HAProxy als Loadbalancer mit connection check können Master ausfallen und umgehend aus der externen MySQL Konfiguration neu erstellt werden. Das macht das Setup robust gegen das Wegbrechen einzelner Container oder Nodes.
Die Verfügbarkeit einzelner Services wird – wie in Docker-Umgebungen üblich – durch den Einsatz der dafür vorgesehenen Werkzeuge ermöglicht. Dienste von ausgefallen Hosts lassen sich so zum Beispiel als Container umgehend auf einem anderen Host der Umgebung starten. In Verbindung mit der Hochverfügbarkeit der Verwaltung – also von Rancher selbst – entsteht eine sehr robuste Umgebung, die gängigen Enterprise Anforderungen genügt.
Flexibles und automatisiertes Node Management
Auf jedem Server beziehungsweise in jeder virtuellen Maschine kann der Client Agent (Docker Container s.o.) einfach hinzugefügt oder gelöscht werden. Beim Deaktivieren / Pausieren werden die verwalteten Container automatisch auf andere verfügbare Nodes umgezogen. Auf diese Weise ist auch eine Wartung einzelner Nodes ohne Beeinträchtigungen der Services möglich.
Separierung von Umgebungen
Aus verschiedenen Gründen erscheint es sinnvoll, auch innerhalb einer Docker-Infrastruktur die Möglichkeit zu haben, unterschiedliche Umgebungen aufzusetzen und diese getrennt zu verwalten. So kann man eigene Umgebungen für Aufgaben wie Integration, Testing, gegebenenfalls Staging und Production vorhalten.
Es kann aber auch vorkommen, dass unterschiedliche Abteilungen oder Kunden eigene Umgebungen unterhalten möchten. Rancher ermöglicht die gewünschte Separierung und geht dabei noch einen Schritt weiter. Man kann für unterschiedliche Umgebungen auch unterschiedliche Orchestrierungswerkzeuge einsetzen und so den Vorlieben oder Gewohnheiten von Kunden entsprechen.
Wenn man Cattle (ebenfalls von Rancher Labs) zur Orchestrierung innerhalb von Rancher einsetzt, um mehrere Umgebungen (beispielsweise für Integration, Test, Staging, Production) aufzubauen, ist dafür schon alles vorbereitet - Plug&Play sozusagen. Es lassen sich aber eben auch andere etablierte Tools nutzen. So ist Kubernetes oder Mesos für die Orchestrierung einzelner Umgebungen möglich. Dann bedient Rancher einfach die jeweiligen Werkzeuge. Rancher integriert auch an anderen Stellen bewährte Komponenten unter einer Oberfläche – deshalb auch die Bezeichnung als Meta-Orchestrierung weiter oben.
Rolling Upgrade
Das Upgraden von Containern / Produkten funktioniert wie bei Kubernetes. Hier ein Beispiel: Vier Container in der Image-Version 1.2 sollen einen Upgrade auf 1.4 erhalten. Man klickt dafür auf "Upgrade", gibt die neue Version im Feld an und bestimmt "übernehmen". Cattle nimmt einen 1.2-Container offline und erstellt einen 1.4 dafür. Dann wartet das Tool, bis der Container online ist und der Healthcheck ein OK gibt. Ein weiterer 1.2-Container wird durch einen 1.4 ersetzt. Das läuft solange bis alle Container auf Stand 1.4 sind. Nun lässt sich das neue Produkt testen. Wenn der Test gut ausfällt, bestätigt man das als "Upgrade erfolgreich". Dann werden die 1.2 Container gelöscht. Sollte ein Fehler festzustellen sein, lässt sich der Vorgang revoken. Cattle nimmt die 1.2-Container wieder online und löscht die 1.4-Versionen.
Somit adressieren Rancher und Cattle klassische Betriebsaufgaben im Bereich der Aktualisierung von Services.
Benutzerverwaltung
Rancher unterstützt direkt die Anbindung an Active Directory, LDAP oder auch Git. Folglich lassen sich für die Authentifizierung von Benutzern oder die Vergabe von Berechtigungen bestehende Authentifizierungsquellen im Unternehmen nutzen. Beim Zugriff auf das Web-Frontend von Rancher ist die Verwendung von HTTPs für eine verschlüsselte Kommunikation selbstverständlich.
Intuitive Oberfläche
Um in einer komplexen Docker-Umgebung einerseits den Überblick zu behalten und andererseits effizient die erforderlichen administrativen Aufgaben wahrnehmen zu können, ist eine übersichtliche und leicht verständliche grafische Oberfläche eine große Hilfe. Rancher bietet die passende intuitive Web-Oberfläche. Dabei ist das Web-Frontend sehr schnell verständlich, und man fühlt sich nach kurzer Zeit „zu Hause“.
Ein wichtiger Vorteil in Container-basierten Umgebungen ist die Möglichkeit, Vorlagen zu nutzen, um schnell neue Services verfügbar zu machen. Auf Basis der Vorlage steht dann mit wenigen Klicks schnell ein passender grundkonfigurierter Container zur Verfügung, und man muss lediglich die individuellen Anpassungen vornehmen.
Rancher setzt dieses Konzept mit den sogenannte Catalogs um. Hier existieren von frei verfügbaren bis hin zu kostenpflichtig verwalteten Vorlagen eine Reihe von passenden Schablonen, um schnell eine Vielzahl von standardisierten Diensten zu implementieren.
Und die Schattenseite?
Wo viel Licht ist, muss es aber natürlich auch den ein oder anderen Schatten geben. Rancher Labs ist noch ein junges Unternehmen, und die Verbreitung von Rancher ist bisher nicht vergleichbar mit der von Kubernetes, welches mit Google im Rücken einen besonderen Startvorteil genießt. Auf der anderen Seite wirkt Rancher aber durchaus reifer als andere Lösungen wie zum Beispiel Mesos.
Es gibt in Rancher mit Cattle keine PODs, die in Kubernetes die Gruppierung von Containern erleichtern. Hier ist händische Konfiguration notwendig, damit Container auf einem gemeinsamen Host laufen sollen.
Rancher Labs bietet professionellen Support an, der im Rahmen eines „Platinum Plans“ auch rund um die Uhr verfügbar ist. Allerdings ist die Präsenz von Rancher Labs aktuell noch sehr auf die USA konzentriert. Die vollständige Unterstützung für ein Release durch den Hersteller ist aktuell auf ein Jahr beschränkt. Das ist in der schnelllebigen Welt der Container vielleicht nahe an der Realität, aber entspricht nicht den gängigen Vorstellungen für einen Enterprise-Einsatz mit dem entsprechenden Support.
Gerade die Service-Angebote rund um Rancher stehen also noch am Beginn ihrer Entwicklung. Trotzdem erscheint Rancher als möglicher aufgehender Stern am Orchestrierungshimmel in der Container-Welt und findet auch in deutschen Rechenzentren immer mehr an Beachtung. So ist zum Beispiel ProfitBricks für Einsatz und Engagement rund um Rancher bekannt. Aber auch das US Department for Agriculture setzt (passenderweise) seit 2016 auf Rancher. Ein Blick auf Rancher lohnt sich also allemal.
* Alfred Schröder ist Geschäftsführer der Gonicus GmbH in Arnsberg.
(ID:44843025)