Docker Swarm Container Vernetzung und Platzierung

372
user3677920

Ich verwende einen Docker Swarm-Cluster und versuche, die beste Möglichkeit zu finden, einige Container zu implementieren, die meine Anwendung implementieren.

Die Architektur ist immer noch ziemlich "monolithisch" (oder klassischer Model-View-Controller). Ich meine, es gibt einen Web-Reverse-Proxy, einen Anwendungsserver und eine Datenbank. Der App-Server muss möglicherweise eine Verbindung zum Internet herstellen. Nehmen wir an, es gibt einen zweiten App-Server, der eine Verbindung zur db herstellt und der auch eine Verbindung zum Internet herstellen muss. So was:

 } -> web revproxy -> app1-> db <- app2 internet } / / } <=================='------------'  

Ich denke an diese Verbesserungen, insbesondere im Hinblick auf die Sicherheit:

  • 1,0. Bei Komponenten sehe ich eine fehlende: Die Verbindungen von App1 und App2 sollten nicht direkt hergestellt werden. Es wird ein Forward-Proxy mit einer festen ACL benötigt.
  • 2,0. In Bezug auf Netzwerke sollte ich so viele benutzerdefinierte Docker-Netzwerke erstellen, wie erforderlich sind, um eine Situation zu erreichen, in der die einzigen Container, die ein Netzwerk gemeinsam nutzen, Anbieter und Konsument eines Dienstes in diesem Netzwerk sind. So:
    • 2.1. ein netzwerk für revproxy und app1
    • 2.2. ein Netzwerk für App1 und DB
    • 2.3. ein Netzwerk für App2 und DB
    • 2.4. ein Netzwerk für app1, app2 und fwproxy. Da dies jedoch zu viele verschiedene Container im selben Netz sein kann, kann ich weiter spalten und über zwei verschiedene fwproxy-Container verfügen, von denen einer die Internetverbindungen von app1 autorisiert und der andere die Verbindungen von app2 autorisiert.
    • 2.4.1. ein Netzwerk für app1 und fwproxy1
    • 2.4.2. ein Netzwerk für app2 und fwproxy2
  • 3,0. In Bezug auf die Platzierung sollte ich web revproxy und die neuen fwproxy (s) in einem Docker-Knoten platzieren, der sich im äußeren DMZ-Netzwerk befindet (daher spreche ich hier nicht über die Docker-Netzwerke, die ich zuvor beschrieben habe. Diese DMZ ist die DMZ, in der Sie sich befinden können Ihre Docker- Knoten, Ihre Maschinen setzen)
    • 3.1. Auf diese Weise kann revproxy Ingress-Verkehr erhalten (z. B. von einer äußeren Lastverteilung).
    • 3.2. oder fw-Regeln sind einfacher zu verwalten (wenn beispielsweise fwproxy anstelle von DMZ in internen Netzwerken platziert würde, müssten Verbindungen zum Internet zwei Firewall-Kanten direkt durchqueren).

Also ist meine Frage im Grunde, sehen Sie einen Teil meiner Argumentation als falsch an?

Danke im Voraus.

0

0 Antworten auf die Frage