Docker Swarm auf Hetzner Cloud in 3 Schritten

Mit ayedo ist der Betrieb Ihrer Apps in Kubernetes ein Kinderspiel. Mit Docker Swarm bieten wir eine produktionsreife Alternative zu Kubernetes für alle, die sich mit den Abstraktionen von Docker wohl fühlen, aber mehr Verfügbarkeit und Skalierbarkeit benötigen. Mit der ayedo Fleet Custom Edition kommen Sie in den Genuss von Docker Swarm, ohne die operativen Kopfschmerzen. Probieren Sie’s aus.

Docker Swarm auf Hetzner Cloud

Wir lieben Kubernetes. Ist einfach unser Ding. Nichts desto trotz setzen viele Unternehmen nach wie vor auf Docker Swarm zur Orchestrierung Ihrer Container-Workloads und das zu Recht. Docker Swarm ist in vielerlei Hinsicht weniger flexibel wie Kubernetes, aber auf jeden Fall weniger komplex - was es zum idealen Kandidaten für Einsteiger in die Welt verteiler Container-Workloads macht. Docker Swarm erweitert die Syntax und Semantik der bereits bekannten Docker-Befehle um ein Konzept von Services und Stacks um replizierte Workloads gemeinsam verwaltbar zu machen.

Wer wie wir viel mit docker-compose arbeitet dem wird die Umstellung von Docker Standalone auf die Stacks von Docker Swarm leicht fallen - Stack-Files sind auch nur Compose-Files mit leicht anderer Syntax. Diese recht flache Lernkurve erleichtert nicht nur den Einstieg in skalierbare Microservice-Architekturen sondern dient als ideale Vorbereitung, wenn man einen Wechsel auf Kubernetes ins Ziel fasst.

Neben der kurzen Gewöhnungsphase beim Umstieg von Docker Standalone auf Docker Swarm spricht auch die operative Stabilität für Docker Swarm. Insbesondere für Stateless-Workloads ist ein Docker Swarm Cluster einem Kubernetes Cluster oft vorzuziehen, wegen der niedrigen Komplexität des Setups und der allgemeinen Stabilität und Abgehangenheit der Docker-Primitives.

Einführung

In der heutigen technologiegetriebenen Welt ist die Containerisierung von Anwendungen ein wichtiger Schritt in Richtung Flexibilität und Skalierbarkeit. Docker Swarm ist eine Containerorchestrierungsplattform, die es Entwicklern ermöglicht, Docker-Container in einem Cluster auszuführen und zu verwalten. Es ermöglicht die Verwaltung von Containern auf verteilten Systemen und ist eine großartige Lösung für Skalierbarkeit und Hochverfügbarkeit, wenn Kubernetes einfach too much ist.

In diesem Blog-Beitrag zeigen wir Ihnen, wie Sie in der Hetzner Cloud einen Docker Swarm-Cluster mit 3 Master- und 3 Worker-Knoten erstellen und anschließend Portainer installieren um den Swarm bequem über ein modernes Web-Interface managen zu können.

Schritt 1: Erstellen der Virtuellen Maschinen (VMs)

  1. Sofern Sie noch keins haben, erstellen Sie ein Konto in der Hetzner Cloud.
  2. Melden Sie sich bei Hetzner Cloud an und gehen Sie zum Dashboard.
  3. Klicken Sie auf “Projekte” und dann auf “Neues Projekt erstellen”, um ein neues Projekt zu erstellen.
  4. Geben Sie einen Projektnamen ein und klicken Sie auf “Projekt erstellen”.
  5. Klicken Sie im neuen Projekt auf “Server” und dann auf “Server erstellen”.
  6. Wählen Sie “Ubuntu 22.04” als Betriebssystem aus und geben Sie einen Namen für den Master-Knoten ein.
  7. Wiederholen Sie die Schritte 4. und 5. zwei weitere Male, um zwei zusätzliche Master-Knoten zu erstellen.
  8. Wiederholen Sie die Schritte 4. bis 5. drei weitere Male, um die Worker-Knoten zu erstellen.

Schritt 2: Konfigurieren der VMs und Erstellen des Swarm-Clusters

  1. Öffnen Sie ein Terminal oder eine Kommandozeile und stellen Sie eine Verbindung zu einem der Master-Knoten her (SSH). Die Zugangsdaten für die Node haben Sie per E-Mail von Hetzner bekommen.
  2. Installieren Sie Docker auf dem Master-Knoten:
apt update
curl -fsSL https://get.docker.com -o get-docker.sh 
sh get-docker.sh
usermod -aG docker $USER
systemctl start docker
systemctl enable docker
  1. Wiederholen Sie die Schritte 1. und 2. für die beiden anderen Nodes bis Docker auf allen Nodes installiert ist.
  2. Gehen Sie zurück zum ersten Master-Knoten und initialisieren Sie den Swarm-Cluster mit dem folgenden Befehl. Docker wird ein Kommando ausgeben, das auf den Worker-Nodes ausgeführt werden muss um sie in den Swarm aufzunehmen.
docker swarm init --advertise-addr <IP-Adresse-des-Master-Knotens>
  1. Führen Sie nun auf dem ersten Master den folgenden Befehl aus. Dieser generiert ein weiteres Join-Kommando zum Hinzufügen von Master-Nodes zum Cluster.
docker swarm join-token manager
  1. Kopieren Sie den generierten Befehl zum Hinzufügen von Master-Nodes zum Cluster und wechseln Sie auf die zweite Master-Node. Führen Sie dort den kopierten Befehl aus:
docker swarm join --token <Master-Join-Token> <IP-Adresse-des-Master-Knotens>
  1. Wiederholen Sie Schritt 6. für den verbleibenden Master-Knoten.
  2. Wechseln Sie zu einem der Worker-Knoten und führen Sie den Befehl zum Hinzufügen von Worker-Nodes zum Cluster aus, den Sie zuvor kopiert haben:
docker swarm join --token <Master-Join-Token> <IP-Adresse-des-Master-Knotens>
  1. Wiederholen Sie Schritt 8. für die beiden anderen Worker-Knoten.

Schritt 3: Installation und Einrichtung von Portainer

  1. Wechseln Sie auf einen beliebigen Master-Knoten in Ihrem Swarm-Cluster.
  2. Installieren Sie Portainer:
curl -L https://downloads.portainer.io/ce2-18/portainer-agent-stack.yml -o portainer-agent-stack.yml
docker stack deploy -c portainer-agent-stack.yml portainer
  1. Öffnen Sie einen Webbrowser und geben Sie die IP-Adresse des Master-Knotens gefolgt von Port 9443 ein (z. B. https://<IP-Adresse-des-Master-Knotens>:9443).
  2. Folgen Sie dem Einrichtungs-Assistenten für das Setup von Docker Swarm und einem Admin-User für Portainer.
  3. Portainer ist jetzt einsatzbereit, um Ihre Docker-Container und -Dienste zu verwalten. Sie können Container-Images hochladen, Container starten und stoppen, Volumes erstellen und vieles mehr.

Fazit

Das Erstellen eines Docker Swarm-Clusters mit 3 Master- und 3 Worker-Knoten auf Hetzner Cloud ist ein leistungsfähiger Weg, um Containeranwendungen preiswert zu orchestrieren und zu skalieren. Die Verwendung von Portainer als grafische Benutzeroberfläche vereinfacht die Verwaltung von Containern erheblich und bietet Entwicklern eine intuitive Möglichkeit, ihre Anwendungen zu überwachen und zu steuern. Nutzen Sie diese Anleitung, um Ihre Entwicklungs- und Bereitstellungsprozesse zu optimieren und von den Vorteilen der Containerisierung zu profitieren.

Kontaktieren Sie uns

Unsere Container-Experten beraten Sie gerne und individuell.

Fleet Team
Fleet Team
Fleet Team
Fleet Team
Fleet Team
Fleet Team
Fleet Team

Wir antworten in der Regel innerhalb weniger Stunden auf Ihre Nachricht.