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

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

Dockerschwarm ist (auch bekannt als Docker-Engine im Schwarmmodus) eine native Clustering-Lösung, die eine Gruppe von Docker-Hosts zu einem einzigen logischen virtuellen Server macht. Swarm stellt die Verfügbarkeit und hohe Leistung Ihrer Anwendung sicher, indem es sie über die Anzahl der Docker-Hosts innerhalb eines Clusters verteilt.

Außerdem können Sie mit Docker Swarm Ihre Anwendung horizontal skalieren, d. h. die Anzahl der Containerinstanzen für dieselbe Anwendung erhöhen.

Unsere Infrastruktur

Für die Demonstration verwende ich eine gemischte Betriebssystemumgebung:

Hostname IP-Adresse Betriebssystem Zweck
dockerm.itgeek.local 192.168.12.10 CentOS 7 Fungiert als Docker-Manager, der die Docker-Engine verwaltet, die auf Knoten ausgeführt wird. Der Docker-Manager übernimmt auch einen Teil eines Clusters, dh er führt auch Container aus.
node1.itzgeek.local 192.168.12.20 Ubuntu 16.04 Worker-Knoten 1 (Läuft Docker-Engine)
node2.itzgeek.local 192.168.12.30 Fedora 26/25 Worker-Knoten 2 (Läuft Docker-Engine)

Docker Swarm war bisher ein separates Tool. Es ist jetzt in die Docker-Engine von v 1.12 integriert . Sie können also einfach die Docker-Engine installieren auf allen Ihren Hosts (Manager- und Worker-Knoten ).

LESEN :So installieren Sie die Docker Community Edition unter CentOS 7 / RHEL 7

LESEN :So installieren Sie die Docker Community Edition unter Ubuntu 16.04

LESEN :So installieren Sie Docker Community Edition auf Fedora 26 / Fedora 25

Firewall

Sie müssten die folgenden Ports auf der Firewall öffnen, damit ein Schwarm-Cluster ordnungsgemäß funktioniert.

CentOS / Fedora:

firewall-cmd --permanent --add-port=7946/tcp
firewall-cmd --permanent --add-port=4789/udp
firewall-cmd --permanent --add-port=7946/udp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2377/tcp
firewall-cmd --permanent --add-port=80/tcp  ## We are Testing Docker Swarm with WebService
firewall-cmd --reload

Ubuntu:

ufw status
ufw allow 2376/tcp
ufw allow 7946/tcp
ufw allow 7946/udp
ufw allow 2377/tcp
ufw allow 4789/udp
ufw allow 80/tcp ## We are Testing Docker Swarm with WebService
ufw reload
ufw enable

Starten Sie die Docker-Engine neu, nachdem Sie die erforderlichen Ports geöffnet haben, da die Firewall-Kette die Docker-Regeln beeinflusst.

systemctl restart docker

Ab hier sind alle genannten Befehle universelle Docker-Befehle, sodass Sie den Befehl auf jedem Betriebssystem ausführen können, das Docker unterstützt (in unserem Fall CentOS 7 , Ubuntu 16.04 und Fedora 26/25 ).

Erschaffe einen Schwarm

Lassen Sie uns eine Cluster-Erstellung mit "swarm init" initiieren “. Führen Sie den folgenden Befehl auf Ihrem Manager-Knoten aus (dockerm.itzgeek.local ).

[root@dockerm ~]# docker swarm init --advertise-addr 192.168.12.10

–advertise-adr Option gibt den Manager-Knoten an, seine Adresse als 192.168.12.10 zu veröffentlichen damit der Worker-Knoten dem Cluster beitreten kann.

Ausgabe:

Swarm initialized: current node (uhh38rpazd5tnzjph2g5rhgxy) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-5y1u36a0osykywxeme2akpjp4jgx2l67mbqbc4fnazs39bp314-e6djx8ma2qnevolztpplkn26j \
    192.168.12.10:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Die obige Ausgabe enthält das Token zum Hinzufügen von Worker-Knoten zum Cluster.

Zeigen Sie den aktuellen Status des Schwarms mit dem folgenden Befehl an.

[root@dockerm ~]# docker info

Ausgabe:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.03.1-ce
Storage Driver: devicemapper
 Pool Name: docker-253:1-297-pool
.    .   .
.    .   .
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.135-RHEL7 (2016-11-16)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: uhh38rpazd5tnzjph2g5rhgxy
 Is Manager: true
 ClusterID: kp8tgowwcuiv3om0wzfgpngp7
 Managers: 1
 Nodes: 1
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: 192.168.12.10
 Manager Addresses:
  192.168.12.10:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-123.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 979.9 MiB
Name: dockerm.itzgeek.local
ID: OTNI:UJZA:7CC4:TS5N:TVJ7:XXQE:5J7Q:ENWW:ZVPD:3VJI:F5DL:JYSP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Sie können die Docker-Knoten im Schwarm mit dem folgenden Befehl auflisten.

[root@dockerm ~]# docker node ls

Ausgabe:

ID                           HOSTNAME               STATUS  AVAILABILITY  MANAGER STATUS
uhh38rpazd5tnzjph2g5rhgxy *  dockerm.itzgeek.local  Ready   Active        Leader
Seiten:1 2
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 Fail2Ban unter CentOS 8 und Fedora 33

  4. So konfigurieren Sie Autofs unter CentOS 7 / Ubuntu 16.04 / Debian 9 / Fedora 27/26

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

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

So installieren und konfigurieren Sie Nagios 4.0.7 unter CentOS 7

So installieren und konfigurieren Sie ISPConfig CP unter CentOS 7

Installieren und konfigurieren Sie phpLDAPAdmin unter CentOS 7 / Ubuntu 16.04

So richten Sie Docker Private Registry unter CentOS 7 / Ubuntu 16.04 / Fedora 26/25 ein

So installieren und konfigurieren Sie GitLab unter CentOS 7 / Ubuntu 18.04 und Debian 9