GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren und konfigurieren Sie einen Docker Swarm-Cluster unter CentOS 8

Docker ist ein Open-Source-Tool, mit dem Anwendungen mithilfe eines Containers erstellt, bereitgestellt und ausgeführt werden können. Der Container ermöglicht es Ihnen, eine Anwendung mit allen erforderlichen Abhängigkeiten zu packen und als einzelnes Paket zu versenden.

Docker Swarm ist ein Clustering-Tool zur Verwaltung des Docker-Hosts. Es ermöglicht Ihnen, eine Gruppe von Docker-Hosts zu einem einzigen logischen virtuellen Server zu machen. Auf diese Weise können Sie Ihre Anwendung horizontal skalieren und die Anzahl der Containerinstanzen erhöhen. Docker Swarm bietet sehr nützliche Funktionen, darunter Container-Selbstheilung, Lastenausgleich, Container-Skalierung nach oben und unten, Diensterkennung und fortlaufende Updates.

In diesem Beitrag zeigen wir Ihnen, wie Sie einen Docker Swarm-Cluster unter CentOS 8 einrichten.

Voraussetzungen

  • Zwei Server mit CentOS 8.
  • Ein Root-Passwort wird auf jedem Server konfiguriert.

Installieren Sie Docker auf beiden Knoten

Zunächst müssen Sie Docker auf beiden Knoten installieren. Standardmäßig ist die neueste Version von Docker nicht im Standard-Repository von CentOS 8 enthalten. Sie müssen also ein Docker-Repo in Ihrem System hinzufügen.

Sie können es mit dem folgenden Befehl hinzufügen:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Nachdem das Docker-Repository erstellt wurde, installieren Sie Docker mit dem folgenden Befehl:

dnf install docker-ce --nobest

Starten Sie nach der Installation von Docker den Docker-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:

systemctl docker starten
systemctl docker aktivieren

Sie können den Status von Docker auch mit dem folgenden Befehl überprüfen:

Systemctl-Status-Docker

Sie sollten die folgende Ausgabe erhalten:

? docker.service – Docker Application Container Engine Geladen:geladen (/usr/lib/systemd/system/docker.service; deaktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Fr. 2021-03-12 03:55:24 EUROPÄISCHE SOMMERZEIT; vor 6s Dokumente:https://docs.docker.com Haupt-PID:2173 (dockerd) Aufgaben:8 Arbeitsspeicher:44,7 MB CGroup:/system.slice/docker.service ??2173 ​​/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockMar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.570387991-05:00" level=error msg="Failed to built-in GetDriver graph btrfs>Mar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617049696-05:00" level=warning msg="Your kernel does not support cgroup bl>Mar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617096273-05:00" level=warning msg="Ihr Kernel unterstützt cgroup nicht bl>Mar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617278059-05:00" level=info msg="Loading container:start."Mar 12 03:55:23 workernode dockerd[2173] :time="2021-03-12T03:55:23.884953789-05:00" level=info msg="Default Bridge (docker0) ist zugewiesen mit>Mar 12 03:55:24 workernode dockerd[2173]:time="2021 -03-12T03:55:24.039811428-05 :00" level=info msg="Container laden:fertig."Mar 12 03:55:24 workernode dockerd[2173]:time="2021-03-12T03:55:24.066358016-05:00" level=info msg="Docker daemon" commit=363e9a8 graphdriver>Mar 12 03:55:24 workernode dockerd[2173]:time="2021-03-12T03:55:24.066498611-05:00" level=info msg="Daemon hat Initialisierung abgeschlossen" 12. März 03:55:24 workernode systemd[1]:Docker Application Container Engine gestartet =info msg="API lauscht auf /var/run/docker.sock"

Überprüfen Sie nun die installierte Version von Docker mit dem folgenden Befehl:

docker --version

Sie sollten die folgende Ausgabe sehen:

Docker-Version 20.10.5, Build 55c4c88

Firewall konfigurieren

Als nächstes müssen Sie die Ports 2376, 2377, 7946 und 80 auf beiden Knoten durch die Firewall zulassen. Sie können sie mit dem folgenden Befehl zulassen:

firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2377/tcp
firewall-cmd --permanent --add -port=7946/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=7946/udp
firewall- cmd --permanent --add-port=4789/udp

Als nächstes laden Sie die Firewall neu, um die Änderungen zu übernehmen:

firewall-cmd --reload

Initialisieren Sie den Docker-Swarm-Cluster

Als Nächstes müssen Sie den Docker Swarm-Cluster auf dem Manager-Knoten initialisieren. Sie können dies mit dem folgenden Befehl tun:

docker swarm init --advertise-addr 45.58.32.185

Sie sollten die folgende Ausgabe erhalten:

 Swarm initialisiert:aktuelle Knoten (cq8xpscsls2ctqhdha8lhdrph) wird nun ein manager.To einen Arbeiter zu diesem Schwarm hinzufügen, führen Sie den folgenden Befehl ein:Docker Schwarm beitreten --token SWMTKN-1-24ciicg1knfh8htmvymnfw1igx64tcq6ah91n6amk18m2ek9qo-8sf9oysu08t5mf4ggd4ut7o3e 45.58.32.185:2377To einen Manager hinzufügen Führen Sie für diesen Schwarm „docker swarm join-token manager“ aus und folgen Sie den Anweisungen.

Sie können den in der obigen Ausgabe gezeigten Befehl im Docker-Worker-Knoten verwenden, um den Knoten mit dem Cluster zu verbinden.

Sie können die Informationen des Docker Swarm-Clusters mit dem folgenden Befehl überprüfen:

Docker-Info

Sie sollten die folgende Ausgabe erhalten:

Client:Kontext:default Debug Mode:false Plugins:app:Docker App (Docker Inc., v0.9.1-beta3) buildx:Build with BuildKit (Docker Inc., v0.5.1-docker)Server:Containers:0 Läuft:0 Angehalten:0 Gestoppt:0 Bilder:0 Serverversion:20.10.5 Speichertreiber:overlay2 Unterstütztes Dateisystem:xfs Unterstützt d_type:true Native Overlay Diff:true Protokollierungstreiber:json-file Cgroup-Treiber:cgroupfs Cgroup-Version:1 Plugins :Volume:local Network:bridge host ipvlan macvlan null overlay Log:awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm:active NodeID:cq8xpscsls2ctqhdha8lhdrph Is Manager:true ClusterID:m7jrgvuw1k7pvfd1qyc3mffpl Managers:1 Nodes:1.0 Default Address Pool:1 Nodes:1.0 Default Address Pool .0.0/8 Subnetzgröße:24 Datenpfadport:4789 Orchestrierung:Aufbewahrungslimit für Aufgabenverlauf:5 Raft:Snapshot-Intervall:10000 Anzahl alter Snapshots, die aufbewahrt werden sollen:0 Heartbeat-Tick:1 Wahl-Tick:10 Dispatcher:Heartbeat-Zeitraum:5 Sekunden CA Konfigurieren ation:Expiry Duration:3 Monate Force Rotate:0 Autolock Managers:false Root Rotation In Progress:false Node Address:45.58.32.185 Manager Addresses:45.58.32.185:2377

Sie können den Docker Swarm-Knoten jetzt mit dem folgenden Befehl überprüfen:

Docker-Knoten ls

Sie sollten die folgende Ausgabe erhalten:

ID HOSTNAME STATUS VERFÜGBARKEIT MANAGER STATUS ENGINE VERSIONcq8xpscsls2ctqhdha8lhdrph * masternode Ready Active Leader 20.10.5

Worker-Knoten zum Docker-Swarm-Cluster hinzufügen

Als Nächstes müssen Sie den Worker-Knoten zum Docker Swarm-Manager-Knoten hinzufügen. Sie können dies mit dem folgenden Befehl auf dem Worker-Knoten tun:

docker swarm join --token SWMTKN-1-24ciicg1knfh8htmvymnfw1igx64tcq6ah91n6amk18m2ek9qo-8sf9oysu08t5mf4ggd4ut7o3e 45.58.32.185:2377

Sie sollten die folgende Ausgabe erhalten:

Dieser Knoten ist einem Schwarm als Worker beigetreten.

Überprüfen Sie auf dem Docker Manager-Knoten den Worker-Knoten mit dem folgenden Befehl:

Docker-Knoten ls

Sie sollten sehen, dass der Worker-Knoten zum Docker Swarm hinzugefügt wurde:

cq8xpscsls2ctqhdha8lhdrph * masternode bereit aktiv Leader 20.10.5bipfv8sfm94a9po0uame5rd1n workernode bereit aktiv 20.10.5

Starten Sie einen Dienst in Docker Swarm

Hier erstellen wir einen neuen Nginx-Webservice und skalieren ihn mit zwei Containern. Sie können es erstellen, indem Sie den folgenden Befehl auf dem Manager-Knoten ausführen:

docker service create -p 80:80 --name webservice --replicas 2 nginx

Sie sollten die folgende Ausgabe erhalten:

agyxlaswxakrbboakkyydsh0Gesamtfortschritt:2 von 2 Aufgaben 1/2:läuft [=================================================>] 2/2:läuft [==================================================>] verifizieren:Dienst konvergiert 

Sie können den Webservice nun mit folgendem Befehl prüfen:

docker service ls

Sie sollten die folgende Ausgabe sehen:

ID NAME MODE REPLICAS IMAGE PORTSSagyxlaswxakr Webservice repliziert 2/2 nginx:latest *:80->80/tcp

Sie können den laufenden Container auch mit dem folgenden Befehl überprüfen:

docker-ps

Sie sollten die folgende Ausgabe sehen:

CONTAINER ID IMAGE BEFEHL ERSTELLT STATUS PORTS NAMESc887cad1df2e nginx:latest "/docker-entrypoint.…" vor 32 Sekunden Up 30 Sekunden 80/tcp webservice.2.jelyj9gmeb7ikl2scg7mz8yg8

Führen Sie den folgenden Befehl aus, um die Detailinformationen des Webdienstes abzurufen:

docker service ps webservice

Sie sollten die folgende Ausgabe sehen:

ID NAME IMAGE NODE GEWÜNSCHTER STATUS AKTUELLER STATUS FEHLER PORTSeye9zukwwrkq webservice.1 nginx:latest workernode Wird ausgeführt Wird vor 3 Minuten ausgeführt jelyj9gmeb7i webservice.2 nginx:latest masternode Wird ausgeführt Wird vor 3 Minuten ausgeführt 

Docker Swarm überprüfen

An diesem Punkt haben wir einen Nginx-Container über die Cluster-Knoten einschließlich des Verwaltungsknotens bereitgestellt. Sie können jetzt über eine beliebige IP-Adresse des Worker-Knotens oder des Manager-Knotens auf Ihren Nginx-Webserver zugreifen:

Schlussfolgerung

In der obigen Anleitung haben Sie gelernt, wie Sie den Docker Swarm-Cluster unter CentOS 8 einrichten. Sie können jetzt beliebig viele Worker-Knoten zum Docker Swarm-Cluster hinzufügen und Ihre Anwendung skalieren.


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren und konfigurieren Sie Redis unter CentOS 7

  3. So installieren und konfigurieren Sie GitLab unter CentOS 7

  4. So installieren und konfigurieren Sie Redmine unter CentOS 7

  5. So installieren und konfigurieren Sie Docker in Rocky Linux/Centos 8

So installieren und konfigurieren Sie Nagios 4.0.7 unter CentOS 7

So installieren und konfigurieren Sie ISPConfig CP unter CentOS 7

So installieren und konfigurieren Sie Docker Swarm unter CentOS 7 / Ubuntu 16.04 / Fedora 26/25

So installieren und konfigurieren Sie ownCloud auf CentOS 7

So installieren und konfigurieren Sie Samba unter CentOS 8

So installieren und konfigurieren Sie Fail2ban unter CentOS 8