diff --git a/articles/2025/docker-swarm-mit-abweichendem-port-einrichten.md b/articles/2025/docker-swarm-mit-abweichendem-port-einrichten.md new file mode 100644 index 0000000..12241ea --- /dev/null +++ b/articles/2025/docker-swarm-mit-abweichendem-port-einrichten.md @@ -0,0 +1,85 @@ + +**Wir möchten in diesem Artikel über die abweichende Einrichtung eines Swarm-Netzwerks unter vmware berichten. Eine Besonderheit in der Konfiguration von Docker-Swarm unter vmware kann der identische Port (4789) sein, den sowohl vmware, als auch Docker-Swarm nutzen.** + +## Einleitung + +Wir möchten in diesem Artikel über die abweichende Einrichtung eines Swarm-Netzwerks unter vmware berichten. Eine Besonderheit in der Konfiguration von Docker-Swarm unter vmware kann der identische Port (4789) sein, den sowohl vmware, als auch Docker-Swarm nutzen. Hier ist es notwendig, den ```data-path-port``` zu ändern. Wir gehen hier Schritt für Schritt die Konfiguration durch. + +## Umgebung + +Wir installieren drei Swarm-Nodes auf einer vmware-Umgebung mit insgesamt 4 Hosts. Die Anzahl der vmware-Hosts ist jedoch irrelevant. Vorausgesetzt werden drei Ubuntu-Core-Server mit der OS-Version 22.04 ohne weitere Konfiguration. + +## Basis-Konfiguration + +Wir wechseln in den autorisierten Modus um administrative Aktionen ausführen zu können: + +Dazu führen wir das Kommando ```sudo su``` aus. + +Danach installieren wir die Net-Tools mit dem Kommando ```apt install net-tools```. + +Danach installieren wir den Text-Editor nano mit dem Kommando ```apt install nano```. + +Im Anschluss deaktivieren wir den Ubuntu-Cloud-Init. Hierzu suchen wir mit dem Kommando ```apt-cache pkgnames | grep cloud-init``` die passende Konfiguration. + +Die angezeigte Datei sollte nun bearbeitet werden: ```nano /etc/cloud/cloud.cfg.d/99-disable-cloud-init.cfg```. + +Wir ergänzen die Konfiguration um die Zeile ```network: {config: disabled}```. + +Jetzt ist ein Neustart der virtuellen Maschinen notwendig. + +Im Anschluss konfigurieren wir die Netzwerkeinstellungen der virtuellen Maschinen. Führen Sie die zwei Kommandos aus: + +``` +cd /etc/netplan +grep -iH enp1s0 *.* +``` + +Hierbei sollte eine Datei angezeigt werden, die ungefähr so aussieht: ```00-installer-config.yaml```. + +Jetzt bearbeiten wir die Datei mit derm Kommando ```nano 00-installer-config.yaml``` und fügen folgenden Inhalt ein: + +``` +network: + ethernets: + enp1s0: + dhcp4: no + addresses: + - 192.168.122.128/24 + gateway4: 192.168.122.1 + nameservers: + addresses: [1.1.1.1, 1.0.0.1] + version: 2 +``` + +Jetzt aktivieren wir die Konfiguration mit dem Kommando ```netplan apply```. + +## Installation von Docker + +Installieren Sie Docker mit dem Kommando ```apt install docker.io```. + +## Einrichten des Swarm (nur auf dem ersten Server) + +Führen Sie foldendes Kommando aus um den Swarm-Modus zu aktivieren. Besonders hervorzuheben, ist der abweichende Port. Dieser hat uns bei unser Installation in dieser Kombination Kopfzerbrechen bereitet. Deswegen teilen wir unseren Lösungsweg: + +``` +docker swarm init --data-path-port 4788 --advertise-addr 172.29.8.15 +``` + +Beachten Sie, hier bei ```--advertise-addr``` die IP-Adresse Ihrer ersten virtuellen Maschine einzugeben! + +Nachdem Sie den Befehl ausgeführt haben wird Swarm initialisiert. Achten Sie hierbei auf die Ausgabe. Es sollte eine Meldung mit Ihrem "Swarm-Key" ersichtlich sein. Sollte der Key nicht angezeigt werden, können Sie ihn mit dem Kommando ```docker swarm join-token worker``` erneut aufrufen. + +Hinzufügen der zwei anderen Server zum Swarm +Mit nur einer Node ist ein Swarm ziemlich unnötig. Deswegen fügen wir die zwei weiteren virtuellen Maschinen hinzu: + +```docker swarm join --token --KEY-- 172.29.8.15:2377```. + +Diesen Befehl führen sie auf jedem Server aus, der dem Swarm beitreten soll. Ersetzen Sie --KEY-- durch Ihren Swarm-Key. +Mit den folgenden Befehlen können Sie Informationen zu Ihrem Swarm abrufen: + +```docker info``` +```docker node ls``` + +Jetzt sind alle Server Teil des Swarm. + +Möchten Sie die anderen Server ebenfalls zu Manager-Nodes machen, führen Sie diesen Befehl auf dem ersten Server aus: ```docker node promote name```. \ No newline at end of file