Docker Swarm auf Hetzner Cloud in 3 Schritten

Schritt-für-Schritt-Anleitung zur Erstellung eines Docker Swarm-Clusters mit 3 Master- und 3 Worker-Knoten auf Hetzner Cloud und die Installation und Verwendung von Portainer

Meta: Fabian Peter · 11.07.2023 · ⏳ 4 Minuten · Alle Blogs →
Tagsdocker-swarm · hetzner

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.

ayedo Alien Discord

Werde Teil der ayedo Community

In unserer Discord Community findest du Antworten auf deine Fragen rund um das Thema ayedo, Kubernetes und Open Source. Hier erfährst du in Realtime was es Neues bei ayedo und unseren Partnern gibt und hast die Möglichkeit mit unserem Team in direkten Kontakt zu treten.

Join the Community ↗

Ähnliche Inhalte

Alle Blogs →



Fabian Peter · 01.07.2024 · ⏳ 4 Minuten

Wie bewältigt man 160 Millionen User im Monat? Mit K8s und Docker!

Hochverfügbare SaaS-Infrastruktur für mehr als 2 Milliarden Requests pro Monat In der heutigen digitalisierten Welt sind Ausfallsicherheit und Skalierbarkeit unverzichtbare Merkmale jeder …

Lesen →

Fabian Peter · 27.03.2024 · ⏳ 5 Minuten

Docker Swarm vs Kubernetes

In der Welt der Container-Orchestrierung stehen zwei Technologien im Mittelpunkt der Diskussion: Docker Swarm und Kubernetes. Beide bieten leistungsfähige Plattformen zur Verwaltung von Containern, …

Lesen →

Fabian Peter · 27.03.2024 · ⏳ 4 Minuten

Docker vs Docker Swarm

Docker und Docker Swarm sind eng miteinander verbundene Technologien im Bereich der Containerisierung und Orchestrierung, die jeweils unterschiedliche Aspekte des Managements von Containern abdecken. …

Lesen →

Fabian Peter · 12.01.2024 · ⏳ 4 Minuten

Cal.com mit Docker in der Hetzner Cloud

In diesem Artikel zeigen wir den schnellsten und bequemsten Weg, Cal.com mit Docker in der Hetzner Cloud zu self-hosten. Mit Hilfe von Polycrate haben Sie in weniger als 5 Minuten Zugang zu Ihrer …

Lesen →

Nico Saia · 05.11.2023 · ⏳ 4 Minuten

Zero-Downtime Deployments mit Docker Swarm und Portainer - Teil 2/2

Zero-downtime deployments mit Docker Swarm und Portainer Teil 2/2 Was haben wir bisher erreicht? Vorraussetzungen Portainer Stack mit GitHub verknüpfen Was haben wir bisher erreicht? In Teil 1 haben …

Lesen →


Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →

Kontaktieren Sie uns

Unsere Cloud-Experten beraten Sie gerne und individuell.

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

Zu Gen-Z für E-Mail? Einfach mal Discord versuchen. Unter +49 800 000 3706 können Sie unter Angabe Ihrer Kontaktdaten auch einen Rückruf vereinbaren. Bitte beachten Sie, dass es keine Möglichkeit gibt, uns telefonisch direkt zu erreichen. Bitte gar nicht erst versuchen. Sollten Sie dennoch Interesse an synchroner Verfügbarkeit via Telefon haben, empfehlen wir Ihnen unseren Priority Support.