Konfiguration und Verwaltung von Docker Swarm-Clustern

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Docker Swarm ist eine leistungsstarke Container-Orchestrierungslösung, die Entwicklern ermöglicht, mehrere Docker-Hosts zu einer einheitlichen, skalierbaren Infrastruktur zusammenzuführen. Dieses umfassende Tutorial bietet detaillierte Einblicke in die Erstellung, Konfiguration und Verwaltung von Docker Swarm-Clustern. Es behandelt grundlegende Konzepte, Knotentypen, Strategien zur Bereitstellung von Services und Best Practices für die Erstellung robuster containerisierter Umgebungen.

Docker Swarm Grundlagen

Einführung in Docker Swarm

Docker Swarm ist eine native Clustering- und Container-Orchestrierungslösung für Docker-Umgebungen. Sie ermöglicht Entwicklern die Erstellung und Verwaltung eines Clusters von Docker-Nodes und verwandelt mehrere Docker-Hosts in einen einzigen, virtuellen Docker-Host.

Kernkonzepte

Swarm Cluster-Architektur

graph TD A[Swarm Manager] --> B[Worker Node 1] A --> C[Worker Node 2] A --> D[Worker Node 3]

Swarm Knotentypen

Knotentyp Beschreibung Verantwortlichkeiten
Manager-Node Steuert den Clusterzustand Orchestrierung, Scheduling
Worker-Node Führt Container-Workloads aus Ausführung von Services

Initialisierung eines Swarm Clusters

## Swarm auf dem primären Knoten initialisieren
docker swarm init --advertise-addr 192.168.1.100

## Worker-Join-Token generieren
docker swarm join-token worker

## Worker-Knoten dem Cluster hinzufügen
docker swarm join --token < token > 192.168.1.100:2377

Hauptmerkmale

  • Dezentrale Architektur
  • Deklaratives Service-Modell
  • Skalierung und Rollout-Updates
  • Service-Discovery
  • Lastverteilung
  • Sichere Kommunikation

Beispiel für die Servicebereitstellung

## Erstellen eines replizierten Services
docker service create --replicas 3 --name web nginx

## Skalieren des Services
docker service scale web=5

## Aktualisieren des Services
docker service update --image nginx:latest web

Clusterkonfiguration

Swarm Cluster-Topologie

graph TD A[Manager-Knoten] --> B[Worker-Knoten 1] A --> C[Worker-Knoten 2] A --> D[Worker-Knoten 3]

Strategien zur Knoteninitialisierung

Einrichtung des Manager-Knotens

## Initialisierung des Swarm-Clusters auf dem primären Manager
docker swarm init --advertise-addr 192.168.1.100

## Anzeigen der Cluster-Join-Tokens
docker swarm join-token manager
docker swarm join-token worker

Konfiguration des Worker-Knotens

## Hinzufügen des Worker-Knotens zum Cluster
docker swarm join \
  --token SWMTKN-1-xxxxxxxxxxxxxxxxxxxxx \
  192.168.1.100:2377

Clusterkonfigurationsparameter

Parameter Beschreibung Standardwert
Advertise Address Netzwerk-Schnittstelle des Knotens Primäre IP-Adresse
Listen Port Swarm-Kommunikationsport 2377
Knotenlabels Metadaten zur Knotenauswahl Keine

Erweiterte Clusterkonfiguration

## Hinzufügen von benutzerdefinierten Knotenlabels
docker node update --label-add type=frontend worker1

## Festlegen der Knotenverfügbarkeit
docker node update --availability drain worker2

Netzwerkkonfiguration

## Erstellen eines Overlay-Netzwerks
docker network create \
  --driver overlay \
  --subnet 10.0.0.0/24 \
  my-network

Serviceverwaltung

Ablauf der Servicebereitstellung

graph LR A[Service erstellen] --> B[Container bereitstellen] B --> C[Service skalieren] C --> D[Service aktualisieren] D --> E[Leistung überwachen]

Grundlegende Serviceerstellung

## Bereitstellung des nginx-Services mit 3 Replikaten
docker service create \
  --name web-service \
  --replicas 3 \
  --publish 80:80 \
  nginx:latest

Servicekonfigurationsoptionen

Option Beschreibung Beispiel
--replicas Anzahl der Containerinstanzen 3
--update-parallelism Parallele Aktualisierungen 2
--constraint Regeln für die Knotenplatzierung node.labels.type==frontend

Strategien zur Serviceskalierung

## Dynamische Skalierung des Services
docker service scale web-service=5

## Horizontale Skalierung
docker service update \
  --replicas-max-per-node 2 \
  web-service

Konfiguration der Lastverteilung

## Erstellen eines Services mit benutzerdefinierter Lastverteilung
docker service create \
  --name api-service \
  --replicas 4 \
  --publish mode=host,target=8080,published=80 \
  --update-delay 10s \
  api-image:latest

Mechanismen zur Service-Aktualisierung

## Rolling-Update-Strategie
docker service update \
  --image nginx:latest \
  --update-parallelism 2 \
  --update-delay 10s \
  web-service

Serviceüberwachung

## Auflistung der aktiven Services
docker service ls

## Inspektion eines bestimmten Services
docker service ps web-service

Zusammenfassung

Durch die Beherrschung von Docker Swarm können Entwickler und Systemadministratoren containerisierte Anwendungen effektiv auf verteilten Systemen verwalten. Das Tutorial demonstriert wichtige Techniken zur Initialisierung von Clustern, zur Konfiguration von Knotentopologien, zur Bereitstellung von Services und zur Nutzung erweiterter Funktionen wie Service-Discovery, Lastverteilung und sicherer Kommunikation. Das Verständnis dieser Grundlagen befähigt Teams, skalierbare, robuste Container-Infrastrukturen mit erhöhter Betriebseffizienz zu erstellen.