Docker Swarm: Container im Rudel
Willkommen bei Docker Swarm! Container gedeihen wie Rudeltiere in groĂer Zahl, aber ihre Verteilung auf die Server ist entscheidend. Docker Swarm, das seit Version 1.12 in die Docker Engine integriert ist, eignet sich hierfĂŒr hervorragend. Erfahren Sie mehr ĂŒber Manager- und Worker-Knoten, Dienstvarianten, Lastausgleich und Skalierbarkeit. Dies ist Teil 3 unserer Docker/Rancher-Reihe, in der wir uns mit der verteilten Umgebung von Docker Swarm beschĂ€ftigen.
Docker Swarm
Container sind Rudeltiere â sie treten meistens in gröĂeren Mengen auf. Nachdem aber jede Maschine ab einer gewissen Menge an seine Grenzen stöĂt, möchte man die Container auf mehreren Servern verteilen. Um die Container auf einem Cluster zu verteilen, gibt es mehrere Möglichkeiten. Eine davon stellt Docker Swarm dar.
UrsprĂŒnglich wurde Docker Swarm als Erweiterung zur VerfĂŒgung gestellt, aber seit Version 1.12 ist es direkt in der Docker Engine enthalten. Damit lassen sich die Container nicht nur auf mehrere Server verteilen, sondern es bringt auch noch einige Features mit.
Bei Docker Swarm wird zwischen zwei Servertypen (=nodes) unterschieden: manager-nodes und worker-nodes. WĂ€hrend die worker-nodes, wie der Name schon vermuten lĂ€sst, die Arbeit verrichten, werden manager-nodes benutzt um neue Container zu starten. Die manager-nodes verteilen dann die neu zu startenden Container auf der worker-nodes, sodass alle Server möglichst gleichmĂ€Ăig ausgelastet sind. Somit entsteht eine groĂe Docker-Umgebung auf mehrere Server verteilt, die leicht erweitert werden können.Zudem werden auch bei den Diensten verschiedene Varianten dem Namen nach eingefĂŒhrt: tasks, welche die Aufgabe an die manager-nodes darstellen neue Container zu starten; services, die aus einem Container bestehen, der auf einem der Server lĂ€uft; replica services â erst mal wie ein normaler Container, aber in mehrfacher AusfĂŒhrung des gleichen Servers, die ĂŒber den Cluster verteilt werden; und zu guter Letzt global services, die aus einem Container bestehen, der auf jedem node im Netzwerk einmal laufen soll. FĂŒr die replica servers wird ĂŒblicherweise ein Loadbalancer eingefĂŒhrt, der die Aufgaben gleichmĂ€Ăig auf die Container verteilt um somit die Last möglichst weitflĂ€chig im Netzwerk zu verteilen. Die Skalierung, also die Anzahl wie oft ein bestimmter Container bestehen soll, lĂ€sst sich auch nach dem Start des Containers noch anpassen.
Mit einer groĂen erweiterbaren Docker-Umgebung lassen sich sehr viele Container starten und somit viele Applikationen in Containern betreiben. ZusĂ€tzlich besteht durch die Skalierung und das Loadbalancing die Möglichkeit Lasten und Traffic auf mehrere Server zu verteilen. Da die Docker Swarm Verwaltung wie auch Docker ĂŒber die Kommandozeile funktioniert, ist es schwer bei einem groĂen Cluster mit vielen Containern den Ăberblick zu bewahren.
Dies ist Teil 3 aus einer Reihe von BlogbeitrÀgen zum Thema Docker/Rancher.
Teil 1 bietet einen Ăberblick zu Docker und Container-Umgebungen
Teil 2 erklÀrt die Funktionen einer Docker Registry und docker-compose
Teil 3 stellt Docker Swarm mit einer Docker Umgebung verteilt ĂŒber mehrere Hosts vorhanden
Teil 4 zeigt Rancher als Orchestrierungstool fĂŒr Docker (und andere Containerumgebungen)
Teil 5 enthÀlt kurze Informationen zu den Rancher-Funktionen eines Katalogs und rancher-compose
Der ATIX-Crew besteht aus Leuten, die in unterschiedlichen Bereichen tÀtig sind: Consulting, Development/Engineering, Support, Vertrieb und Marketing.