Linuxguide

Docker Swarm Cluster einrichten – HA ohne Kubernetes 2025

Multi-Node Container-Cluster für KMU ohne Kubernetes-Komplexität

S
SeeColors IT
11. Juni 20264 Min. Lesezeit174 Aufrufe

Docker Swarm vs. Kubernetes

Merkmal Docker Swarm Kubernetes
Komplexität Niedrig Hoch
Einrichtungszeit 5 Minuten 30–120 Minuten
Features Ausreichend für KMU Enterprise-Grade
Ressourcenverbrauch Minimal Höher
Lernkurve Gering Steil
docker-compose Support Ja (Stacks) Nein (Helm)

3-Node Swarm aufsetzen

Voraussetzungen

  • 3 Ubuntu Server (Manager + 2 Worker)
  • Ports: 2377/TCP (Cluster), 7946/TCP+UDP (Nodes), 4789/UDP (Overlay)
# Ports in UFW öffnen (alle 3 Nodes)
sudo ufw allow 2377/tcp
sudo ufw allow 7946
sudo ufw allow 4789/udp

Manager-Node initialisieren

# Auf Manager-Node
docker swarm init --advertise-addr 192.168.1.10

# Ausgabe:
# docker swarm join --token SWMTKN-1-xxx 192.168.1.10:2377

Worker-Nodes hinzufügen

# Auf beiden Worker-Nodes (Token aus obiger Ausgabe)
docker swarm join --token SWMTKN-1-xxx 192.168.1.10:2377

# Cluster-Status prüfen (auf Manager)
docker node ls

Services deployen

# Service mit 3 Replicas
docker service create \
  --name webserver \
  --replicas 3 \
  --publish published=80,target=80 \
  --update-delay 10s \
  nginx:alpine

# Services anzeigen
docker service ls
docker service ps webserver

# Skalieren
docker service scale webserver=5

# Rolling Update
docker service update \
  --image nginx:1.25-alpine \
  --update-parallelism 1 \
  --update-delay 10s \
  webserver

Stack deployen (Docker Compose Format)

# app-stack.yml
version: "3.8"
services:
  web:
    image: nginx:alpine
    deploy:
      replicas: 3
      update_config:
        parallelism: 1
        delay: 10s
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet

  db:
    image: postgres:16-alpine
    deploy:
      replicas: 1
      placement:
        constraints:
          - "node.labels.db==true"
    environment:
      POSTGRES_PASSWORD: geheim
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - webnet

volumes:
  db-data:

networks:
  webnet:
    driver: overlay
docker stack deploy -c app-stack.yml meine-app
docker stack services meine-app

Secrets in Swarm

# Secret erstellen
echo "SuperGeheimesPasswort!" | docker secret create db_password -

# Service mit Secret
docker service create \
  --name db \
  --secret db_password \
  -e POSTGRES_PASSWORD_FILE=/run/secrets/db_password \
  postgres:16-alpine

Secrets liegen als Dateien unter /run/secrets/ im Container – niemals in Umgebungsvariablen!

FAQ

Soll ich Swarm oder K3s für KMU nutzen?
Für einfache Apps und Teams ohne Kubernetes-Erfahrung: Swarm. Für größere Deployments mit mehr Services und besserer Observability: K3s.

Wie füge ich einen zweiten Manager hinzu (HA)?
docker swarm join-token manager auf dem ersten Manager ausführen und den Token auf dem zweiten Manager-Node nutzen.

Fazit

Docker Swarm ist die einfachste Lösung für Multi-Node-Container-Hosting in KMU. Für Teams die Docker kennen ist der Umstieg auf Swarm trivial.

Container-Cluster für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Beratung anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel