Merge pull request 'groot-patch-1' (#1) from groot-patch-1 into main
Reviewed-on: #1
This commit is contained in:
58
swarm_full/README.md
Normal file
58
swarm_full/README.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
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;`.
|
||||||
|
|
||||||
|
**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.
|
||||||
|
- 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
|
||||||
|
|
||||||
|
- 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`)``.
|
||||||
|
|
||||||
|
## 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!
|
||||||
|
|
||||||
|
### 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.
|
Reference in New Issue
Block a user