From a272c361907c9fb3bbe4b34606def5b97ccc1136 Mon Sep 17 00:00:00 2001 From: groot Date: Sat, 4 Jan 2025 21:05:47 +0000 Subject: [PATCH 1/6] =?UTF-8?q?swarm=5Ffull/README.md=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- swarm_full/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 swarm_full/README.md diff --git a/swarm_full/README.md b/swarm_full/README.md new file mode 100644 index 0000000..f626be7 --- /dev/null +++ b/swarm_full/README.md @@ -0,0 +1,19 @@ +# Konfiguration + +## Network + +Das Netzwerk ist typisch für die Swarm-Konfiguration auf overlay eingestellt. + +Hier ist eine statische IP-Konfiguration festgelegt. Dieses muss eventuell angepasst werden, wenn Container zu einem bestehenden Netzwerk hinzugefügt werden sollen. (z.B. Traefik) + +## Volumes + +Hier verwenden wir einen Bind, um bestimmte Konfigurationen in den Container einzubinden. + +Möglicherweise müssen Sie bei der Verwendung mehrerer Stacks den Stack-Namen `web1` durch einen anderen Namen ersetzen. + +## Traefik-Labels + +Hier müssen Sie den Router- und Service-Namen für Ihre Bedürfnisse anpassen und den Stack-Namen `web1` durch einen anderen Namen ersetzen. + +Zudem ist der Host-Parameter gemäß Ihrer Domäne zu ersetzen ``Host(`web1.localdomain`)``. -- 2.49.1 From 9b37832a117f47a1ac5f409bd359cb46b010f606 Mon Sep 17 00:00:00 2001 From: groot Date: Sat, 4 Jan 2025 21:13:43 +0000 Subject: [PATCH 2/6] swarm_full/README.md aktualisiert --- swarm_full/README.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/swarm_full/README.md b/swarm_full/README.md index f626be7..7e0dfba 100644 --- a/swarm_full/README.md +++ b/swarm_full/README.md @@ -2,18 +2,24 @@ ## Network -Das Netzwerk ist typisch für die Swarm-Konfiguration auf overlay eingestellt. - -Hier ist eine statische IP-Konfiguration festgelegt. Dieses muss eventuell angepasst werden, wenn Container zu einem bestehenden Netzwerk hinzugefügt werden sollen. (z.B. Traefik) +- Das Netzwerk ist typisch für die Swarm-Konfiguration auf overlay eingestellt. +- Hier ist eine statische IP-Konfiguration festgelegt. Dieses muss eventuell angepasst werden, wenn Container zu einem bestehenden Netzwerk hinzugefügt werden sollen. (z.B. Traefik) ## Volumes -Hier verwenden wir einen Bind, um bestimmte Konfigurationen in den Container einzubinden. - -Möglicherweise müssen Sie bei der Verwendung mehrerer Stacks den Stack-Namen `web1` durch einen anderen Namen ersetzen. +- Hier verwenden wir einen Bind, um bestimmte Konfigurationen in den Container einzubinden. +- Möglicherweise müssen Sie bei der Verwendung mehrerer Stacks den Stack-Namen `web1` durch einen anderen Namen ersetzen. ## Traefik-Labels -Hier müssen Sie den Router- und Service-Namen für Ihre Bedürfnisse anpassen und den Stack-Namen `web1` durch einen anderen Namen ersetzen. +- Hier müssen Sie den Router- und Service-Namen für Ihre Bedürfnisse anpassen und den Stack-Namen `web1` durch einen anderen Namen ersetzen. +- Zudem ist der Host-Parameter gemäß Ihrer Domäne zu ersetzen ``Host(`web1.localdomain`)``. -Zudem ist der Host-Parameter gemäß Ihrer Domäne zu ersetzen ``Host(`web1.localdomain`)``. +## Deployment + +### Replicas + +- Die Anzahl der Replicas steht hier standardmäßig auf `1`, außer beim Webservice, wo es `3` Replicas sind. Passen Sie dies je nach Bedarf an. Beachten Sie, den Service Redis nicht >1 zu stellen, da ansonsten die Sessions innerhalb von PHP nicht mehr konsistent sind! +- Die Update-Config steht auf `1` mit einem delay von `10s`. Bei einem Update des Services werden also alle 3 Container im Abstand von 10 Sekunden aktualisiert und somit gibt es keine Downtime bei der Aktualisierung. +- Die Restart-Policy ist auf `on-failure` gesetzt, damit der Container nur bei Fehlern neu startet. +- Das Placement ist so eingestellt, das die Dienste nur auf Worker-Nodes (`node.role != manager`) und nicht auf Manager-Nodes bereitgestellt werden. -- 2.49.1 From fa1f0d84addb13b8013291017c8a48787e430343 Mon Sep 17 00:00:00 2001 From: groot Date: Sat, 4 Jan 2025 21:22:23 +0000 Subject: [PATCH 3/6] swarm_full/README.md aktualisiert --- swarm_full/README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/swarm_full/README.md b/swarm_full/README.md index 7e0dfba..9520890 100644 --- a/swarm_full/README.md +++ b/swarm_full/README.md @@ -1,5 +1,18 @@ # Konfiguration +## Vorhandene Konfigurationen anpassen + +Es ist sinnvoll, Konfigurationen anzupassen. Die in die Services eingebundenen Dateien können von den jeweiligen Repositories geladen werden, oder über das Starten der Container mit einem Docker-Volume manuell kopiert werden. Wir empfehlen das Laden der Konfigurationsdateien aus den Git-Repositories. +Diese finden Sie hier: + +- https://git.send.nrw/sendnrw/nginx +- https://git.send.nrw/sendnrw/php84 +- https://git.send.nrw/sendnrw/php83 +- https://git.send.nrw/sendnrw/redis + +Wenn Sie keine Konfigurationen anpassen möchten, können Sie auf alle Bind-Volumes verzichten, außer `/docker/mnt/stack0/web1/src:/usr/share/nginx/html` +Beachten Sie, hier ebenfalls den Pfad des Hosts auf Ihre Umgebung anzupassen. + ## Network - Das Netzwerk ist typisch für die Swarm-Konfiguration auf overlay eingestellt. @@ -9,6 +22,7 @@ - Hier verwenden wir einen Bind, um bestimmte Konfigurationen in den Container einzubinden. - Möglicherweise müssen Sie bei der Verwendung mehrerer Stacks den Stack-Namen `web1` durch einen anderen Namen ersetzen. +- Achten Sie beim Deployment in einem Swarm darauf keine Volumes zu verwenden, da diese nicht Node-Übergreifend sind. In diesem Beispiel wird davon ausgegangen, das der Pfad `stack0` über Mounts wie z.B. glusterfs in alle Nodes eingebunden ist und allen Nodes zur Verfügung steht. ## Traefik-Labels @@ -20,6 +34,15 @@ ### Replicas - Die Anzahl der Replicas steht hier standardmäßig auf `1`, außer beim Webservice, wo es `3` Replicas sind. Passen Sie dies je nach Bedarf an. Beachten Sie, den Service Redis nicht >1 zu stellen, da ansonsten die Sessions innerhalb von PHP nicht mehr konsistent sind! + +### Update-Config + - Die Update-Config steht auf `1` mit einem delay von `10s`. Bei einem Update des Services werden also alle 3 Container im Abstand von 10 Sekunden aktualisiert und somit gibt es keine Downtime bei der Aktualisierung. + +### Restart-Policy + - Die Restart-Policy ist auf `on-failure` gesetzt, damit der Container nur bei Fehlern neu startet. + +### Placement + - Das Placement ist so eingestellt, das die Dienste nur auf Worker-Nodes (`node.role != manager`) und nicht auf Manager-Nodes bereitgestellt werden. -- 2.49.1 From b965aef73c2071af63fce5fb171d4464e4760f8e Mon Sep 17 00:00:00 2001 From: groot Date: Sat, 4 Jan 2025 21:27:02 +0000 Subject: [PATCH 4/6] swarm_full/README.md aktualisiert --- swarm_full/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/swarm_full/README.md b/swarm_full/README.md index 9520890..6d1a5fc 100644 --- a/swarm_full/README.md +++ b/swarm_full/README.md @@ -13,6 +13,10 @@ Diese finden Sie hier: Wenn Sie keine Konfigurationen anpassen möchten, können Sie auf alle Bind-Volumes verzichten, außer `/docker/mnt/stack0/web1/src:/usr/share/nginx/html` Beachten Sie, hier ebenfalls den Pfad des Hosts auf Ihre Umgebung anzupassen. +Zudem muss einer der PHP-Services (`php84` oder `php83`) in `php` umbenannt werden. + +Alternativ muss die Konfigurations-Datei `/docker/mnt/stack0/web1/server/etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf` eingebunden und angepasst werden. Ändern Sie hier dafür die Zeile `fastcgi_pass php:9000;` in `fastcgi_pass php84:9000;` oder `fastcgi_pass php83:9000;`. + ## Network - Das Netzwerk ist typisch für die Swarm-Konfiguration auf overlay eingestellt. -- 2.49.1 From a00786b472fff2706d4578f03b16e525ab5c1ea1 Mon Sep 17 00:00:00 2001 From: groot Date: Sat, 4 Jan 2025 21:28:36 +0000 Subject: [PATCH 5/6] swarm_full/README.md aktualisiert --- swarm_full/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swarm_full/README.md b/swarm_full/README.md index 6d1a5fc..82b431b 100644 --- a/swarm_full/README.md +++ b/swarm_full/README.md @@ -10,7 +10,7 @@ Diese finden Sie hier: - https://git.send.nrw/sendnrw/php83 - https://git.send.nrw/sendnrw/redis -Wenn Sie keine Konfigurationen anpassen möchten, können Sie auf alle Bind-Volumes verzichten, außer `/docker/mnt/stack0/web1/src:/usr/share/nginx/html` +Wenn Sie keine Konfigurationen anpassen möchten, können Sie auf alle Bind-Volumes verzichten, außer `/docker/mnt/stack0/web1/src:/usr/share/nginx/html`. Beachten Sie, hier ebenfalls den Pfad des Hosts auf Ihre Umgebung anzupassen. Zudem muss einer der PHP-Services (`php84` oder `php83`) in `php` umbenannt werden. -- 2.49.1 From 5575981ae70111942c21c57e6e2e2d5e0ce745ae Mon Sep 17 00:00:00 2001 From: groot Date: Sat, 4 Jan 2025 21:33:25 +0000 Subject: [PATCH 6/6] swarm_full/README.md aktualisiert --- swarm_full/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/swarm_full/README.md b/swarm_full/README.md index 82b431b..b1b0b93 100644 --- a/swarm_full/README.md +++ b/swarm_full/README.md @@ -17,11 +17,17 @@ Zudem muss einer der PHP-Services (`php84` oder `php83`) in `php` umbenannt werd Alternativ muss die Konfigurations-Datei `/docker/mnt/stack0/web1/server/etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf` eingebunden und angepasst werden. Ändern Sie hier dafür die Zeile `fastcgi_pass php:9000;` in `fastcgi_pass php84:9000;` oder `fastcgi_pass php83:9000;`. +**Aus Sicherheitsgründen empfehlen wir, das in der Konfiguration gesetzte Kennwort für Redis ebenfalls zu ändern.** + ## Network - Das Netzwerk ist typisch für die Swarm-Konfiguration auf overlay eingestellt. - Hier ist eine statische IP-Konfiguration festgelegt. Dieses muss eventuell angepasst werden, wenn Container zu einem bestehenden Netzwerk hinzugefügt werden sollen. (z.B. Traefik) +## Ports + +In diesem Beispiel sind zwei Ports zum Host veröffentlicht. `8080` für nginx und `6379` für Redis. + ## Volumes - Hier verwenden wir einen Bind, um bestimmte Konfigurationen in den Container einzubinden. -- 2.49.1