Docker Swarm ATIX AG

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.

Container sind Rudeltiere – sie treten meistens in grĂ¶ĂŸeren Mengen auf. 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

Docker-Schulung

Dieser Kurs ist fĂŒr Teilnehmer:innen gedacht, die keine oder wenig Erfahrung mit Docker besitzen. Begonnen wird mit einer EinfĂŒhrung in Container, um einen gemeinsamen Wissensstand sicherzustellen. Danach erstellen die Teilnehmer:innen mittels GitLab eine containerisierte Anwendung. Mit dieser Infrastruktur lernen sie, Images zu bauen: zuerst ganz von Hand, schließlich vollautomatisch. Zuletzt lernen die Teilnehmer:innen Docker-Alternativen kennen und erstellen ihre Images beispielsweise mit Buildah oder kaniko.

The following two tabs change content below.

ATIX-Crew

Der ATIX-Crew besteht aus Leuten, die in unterschiedlichen Bereichen tÀtig sind: Consulting, Development/Engineering, Support, Vertrieb und Marketing.