swarm ist ein offiziell von Docker bereitgestelltes Cluster-Management-Tool. Seine Hauptfunktion besteht darin, mehrere Docker-Hosts zu einem Ganzen zu abstrahieren und verschiedene Docker-Ressourcen auf diesen Docker-Hosts einheitlich über einen Eingang zu verwalten.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.
Swarm ist eine von Docker gestartete Plattform zur Verwaltung von Docker-Clustern. Der Code ist Open Source unter https://github.com/docker/swarm Als einzelner virtueller Host verwendet Swarm die Standard-Docker-API-Schnittstelle als Front-End-Zugriffseingang. Mit anderen Worten: Verschiedene Formen von DockerClient (Compose, Docker-Py usw.) können direkt mit Swarm kommunizieren, und sogar Docker selbst Es ist leicht in Swarm integriert, was Benutzern die Transplantation von ursprünglich auf einzelnen Knoten basierenden Systemen in Swarm erheblich erleichtert. Gleichzeitig verfügt Swarm über eine integrierte Unterstützung für Docker-Netzwerk-Plug-Ins, und Benutzer können problemlos hostübergreifende Containercluster bereitstellen Dienstleistungen.
Swarm ähnelt Kubernetes, ist jedoch leichter und verfügt über weniger Funktionen als Kubernetes.
Docker Swarm besteht aus zwei Aspekten: einem Docker-Sicherheitscluster auf Unternehmensebene und einer Orchestrierungs-Engine für Mikroservice-Anwendungen.
In Bezug auf Clustering organisiert Swarm einen oder mehrere Docker-Knoten, sodass Benutzer sie in einem Cluster verwalten können.
Swarm verfügt über einen integrierten verschlüsselten verteilten Clusterspeicher, ein verschlüsseltes Netzwerk, öffentliches TLS (Mutual TLS), ein sicheres Cluster-Zugriffstoken (Secure Cluster Join Token) und eine Reihe vereinfachter digitaler Zertifikate, standardmäßig verwaltete PKI (Public Key Infrastructure). Wir können Knoten frei hinzufügen oder löschen.
In Bezug auf die Orchestrierung bietet Swarm einen umfangreichen Satz an APIs, die die Bereitstellung und Verwaltung komplexer Microservice-Anwendungen erleichtern. Indem Sie Ihre Anwendung in einer deklarativen Konfigurationsdatei definieren, können Sie sie mit nativen Docker-Befehlen bereitstellen.
Darüber hinaus können Sie sogar fortlaufende Upgrades, Rollbacks sowie Erweiterungs- und Kontraktionsvorgänge durchführen, die ebenfalls auf der Grundlage einfacher Befehle abgeschlossen werden können.
In der Vergangenheit war Docker Swarm ein eigenständiges Produkt, das auf der Docker-Engine basierte. Seit der Docker-Version 1.12 ist es vollständig in die Docker-Engine integriert und kann durch die Ausführung eines einzigen Befehls aktiviert werden. Bis 2018 wird es in der Lage sein, zusätzlich zu nativen Swarm-Anwendungen auch Kubernetes-Anwendungen bereitzustellen und zu verwalten.
Vorläufige Einführung in Docker Swarm
Aus Cluster-Perspektive besteht ein Swarm aus einem oder mehreren Docker-Knoten. Diese Knoten können physische Server, virtuelle Maschinen, Raspberry Pi oder Cloud-Instanzen sein. Die einzige Voraussetzung ist, dass alle Knoten über ein zuverlässiges Netzwerk verbunden sind.
Der Knoten wird als Verwaltungsknoten (Manager) oder Arbeiterknoten (Worker) konfiguriert. Der Verwaltungsknoten ist für die Cluster-Steuerungsebene (Control Plane) verantwortlich und führt Vorgänge wie die Überwachung des Cluster-Status und die Verteilung von Aufgaben an Arbeitsknoten aus. Worker-Knoten empfangen Aufgaben von Verwaltungsknoten und führen diese aus.
Die Konfigurations- und Statusinformationen von Swarm werden in einer verteilten etcd-Datenbank gespeichert, die sich auf allen Verwaltungsknoten befindet. Die Datenbank wird im Speicher ausgeführt und hält die Daten auf dem neuesten Stand. Das Beste an dieser Datenbank ist, dass sie nahezu keine Konfiguration erfordert, als Teil von Swarm installiert wird und keine Administration erfordert.
Beim Cluster-Management besteht die größte Herausforderung darin, dessen Sicherheit zu gewährleisten. Beim Einrichten eines Swarm-Clusters werden Sie zwangsläufig TLS verwenden, da es eng in Swarm integriert ist.
In der heutigen Zeit des zunehmenden Sicherheitsbewusstseins verdienen Tools wie dieses, energisch gefördert zu werden. Swarm verwendet TLS zur Kommunikationsverschlüsselung, Knotenauthentifizierung und Rollenautorisierung. Die automatische Tastenrotation ist das Tüpfelchen auf dem i! Es arbeitet geräuschlos im Hintergrund und Benutzer bemerken die Existenz dieser Funktion nicht einmal.
In Bezug auf die Anwendungsorchestrierung ist die kleinste Planungseinheit in Swarm ein Dienst. Es wurde mit Swarm eingeführt und ist ein neues Objektelement in der API. Es kapselt einige erweiterte Funktionen basierend auf Containern und ist ein übergeordnetes Konzept. Wenn ein Container in einen Dienst gekapselt ist, nennen wir ihn eine Aufgabe oder eine Kopie. Der Dienst fügt Funktionen wie Erweiterung und Kontraktion, fortlaufendes Upgrade und einfaches Rollback hinzu.
Zusammenfassend betrachten wir Swarm aus einer allgemeinen Perspektive, wie in der folgenden Abbildung dargestellt.
Empfohlenes Lernen: „Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist Docker-Schwarm?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!