GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat a nakonfigurovat Docker Swarm Cluster na CentOS 8

Docker je nástroj s otevřeným zdrojovým kódem, který lze použít k vytváření, nasazování a spouštění aplikací pomocí kontejneru. Kontejner vám umožňuje zabalit aplikaci se všemi požadovanými závislostmi a odeslat ji jako jeden balíček.

Docker Swarm je klastrovací nástroj používaný pro správu hostitele Docker. Umožňuje vám vytvořit ze skupiny hostitelů Docker jediný logický virtuální server. Tímto způsobem můžete svou aplikaci horizontálně škálovat a zvýšit počet instance kontejneru. Docker swarm nabízí velmi užitečné funkce včetně samoopravy kontejneru, vyvažování zátěže, škálování a zmenšování kontejnerů, zjišťování služeb a průběžných aktualizací.

V tomto příspěvku vám ukážeme, jak nastavit cluster Docker Swarm na CentOS 8.

Předpoklady

  • Dva servery se systémem CentOS 8.
  • Na každém serveru je nakonfigurováno heslo uživatele root.

Instalovat Docker na obou uzlech

Nejprve budete muset nainstalovat Docker na oba uzly. Ve výchozím nastavení není nejnovější verze Dockeru zahrnuta ve výchozím úložišti CentOS 8. Budete tedy muset do svého systému přidat repo Docker.

Můžete jej přidat pomocí následujícího příkazu:

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

Po vytvoření úložiště Docker nainstalujte Docker pomocí následujícího příkazu:

dnf install docker-ce --nobest

Po instalaci Dockeru spusťte službu Docker a povolte její spuštění při restartu systému pomocí následujícího příkazu:

systemctl start docker
systemctl enable docker

Stav Dockeru můžete také ověřit pomocí následujícího příkazu:

systemctl status docker

Měli byste získat následující výstup:

? docker.service - Docker Application Container Engine Načteno:načteno (/usr/lib/systemd/system/docker.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od pá 2021-03-12 03:55:24 EST; Před 6 s Dokumenty:https://docs.docker.com Hlavní PID:2173 (dockerd) Úkoly:8 Paměť:44,7M 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="F=error msg=" do vestavěného grafu GetDriver btrfs>Mar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617049696-05:00" level=warning msg="Vaše jádro nepodporuje cgroup bl>Mar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617096273-05:00" level=warning msg="Vaše jádro nepodporuje cgroup bl>Mar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617278059-05:00" level=info msg="Načítání kontejnerů:start."Mar 12 03:55:23 workernode3 dockerd[217 :time="2021-03-12T03:55:23.884953789-05:00" level=info msg="Výchozí most (docker0) je přiřazen s>Mar 12 03:55:24 workernode dockerd[2173]:time="2021 -03-12T03:55:24.039811428-05 :00" level=info msg="Načítání kontejnerů:hotovo."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="Daem completedization" Mar 12 03:55:24 workernode systemd[1]:Spuštěn Docker Application Container Engine.Mar 12 03:55:24 workernode dockerd[2173]:time="2021-03-12T03:55:24.119523516-05:00" level =info msg="Poslouchání rozhraní API na /var/run/docker.sock"

Nyní ověřte nainstalovanou verzi Dockeru pomocí následujícího příkazu:

docker --version

Měli byste vidět následující výstup:

Docker verze 20.10.5, sestavení 55c4c88

Konfigurovat bránu firewall

Dále budete muset povolit porty 2376, 2377, 7946 a 80 přes bránu firewall na obou uzlech. Můžete je povolit pomocí následujícího příkazu:

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

Poté znovu načtěte firewall, aby se změny projevily:

firewall-cmd --reload

Inicializovat Docker Swarm Cluster

Dále budete muset inicializovat cluster Docker Swarm v uzlu správce. Můžete to udělat pomocí následujícího příkazu:

docker swarm init --advertise-addr 45.58.32.185

Měli byste získat následující výstup:

 Swarm inicializaci:aktuální uzel (cq8xpscsls2ctqhdha8lhdrph) je nyní manager.To přidat, aby pracovník tohoto roje, spusťte následující příkaz:docker roj vstoupit --token SWMTKN-1-24ciicg1knfh8htmvymnfw1igx64tcq6ah91n6amk18m2ek9qo-8sf9oysu08t5mf4ggd4ut7o3e 45.58.32.185:2377To přidat správce k tomuto swarmu spusťte „docker swarm join-token manager“ a postupujte podle pokynů.

K připojení uzlu ke clusteru můžete použít příkaz zobrazený ve výše uvedeném výstupu v pracovním uzlu Docker.

Informace o clusteru Docker Swarm můžete zkontrolovat pomocí následujícího příkazu:

Informace o doku

Měli byste získat následující výstup:

Klient:Kontext:výchozí režim ladění:false Pluginy:aplikace:Aplikace Docker (Docker Inc., v0.9.1-beta3) buildx:Sestavení pomocí BuildKit (Docker Inc., v0.5.1-docker)Server:Kontejnery:0 Běh:0 Pozastaveno:0 Zastaveno:0 Obrázky:0 Verze serveru:20.10.5 Ovladač úložiště:overlay2 Systém záložních souborů:xfs Podporuje d_type:true Native Overlay Rozdíl:true Ovladač protokolování:json-file Ovladač Cgroup:cgroupfs Verze Cgroup:1 Pluginy :Svazek:místní Síť:most hostitele ipvlan macvlan null overlay Log:awslogs fluentd gcplogs gelf journald json-file lokální logentries splunk syslog Swarm:active NodeID:cq8xpscsls2ctqhdha8lhdrph Je Manager:true ClusterID:mgvuw1mffjr .0.0/8 SubnetSize:24 Port datové cesty:4789 Organizace:Limit uchování historie úkolů:5 Raft:Interval snímků:10 000 Počet starých snímků k uchování:0 Prezenční signál:1 Volební Tick:10 Dispečer:Heartbeat CA perioda Konfigurovat ation:Expirace Trvání:3 měsíce Force Rotate:0 Autolock Managers:false Probíhá rotace kořene:false Adresa uzlu:45.58.32.185 Adresy manažerů:45.58.32.185:2377

Nyní můžete ověřit uzel Docker Swarm pomocí následujícího příkazu:

docker node ls

Měli byste získat následující výstup:

ID HOSTNAME STAV DOSTUPNOST SPRÁVCE STAV VERZE enginucq8xpscsls2ctqhdha8lhdrph * masternode Ready Active Leader 20.10.5

Přidat Worker Node do Docker Swarm Cluster

Dále budete muset přidat pracovní uzel do manažerského uzlu Docker Swarm. Můžete to udělat pomocí následujícího příkazu na pracovním uzlu:

připojit se k docker swarm --token SWMTKN-1-24ciicg1knfh8htmvymnfw1igx64tcq6ah91n6amk18m2ek9qo-8sf9oysu08t5mf4ggd4ut7o3e 45.58:23.1.> 

Měli byste získat následující výstup:

Tento uzel se připojil k roji jako pracovník.

V uzlu Docker Manager ověřte pracovní uzel pomocí následujícího příkazu:

docker node ls

Měli byste vidět, že pracovní uzel je přidán do Docker Swarm:

cq8xpscsls2ctqhdha8lhdrph * masternode Ready Active Leader 20.10.5bipfv8sfm94a9po0uame5rd1n workernode Ready Active 20.10.5

Spuštění služby v Docker Swarm

Zde vytvoříme novou webovou službu Nginx a škálujeme ji pomocí dvou kontejnerů. Můžete jej vytvořit spuštěním následujícího příkazu v uzlu Správce:

vytvoření služby docker -p 80:80 --name webservice --replicas 2 nginx

Měli byste získat následující výstup:

agyxlaswxakrbboakkyydsh0celkový pokrok:2 ze 2 úkolů 1/2:běží [====================================================>] 2/2:běží [====================================================>] ověřit:Služba konvergovaná 

Nyní můžete webovou službu zkontrolovat pomocí následujícího příkazu:

docker service ls

Měli byste vidět následující výstup:

ID NÁZEV REŽIM REPLIKA OBRÁZKU PORTSagyxlaswxakr webová služba replikována 2/2 nginx:nejnovější *:80->80/tcp

Spuštěný kontejner můžete také zkontrolovat pomocí následujícího příkazu:

docker ps

Měli byste vidět následující výstup:

ID KONTEJNERU OBRÁZKOVÝ PŘÍKAZ VYTVOŘEN STAV NÁZVY PORTŮSc887cad1df2e nginx:latest "/docker-entrypoint.…" před 32 sekundami Nahoru o 30 sekund 80/tcp webservice.2.jelyj9gmeb7ikl2scg7mz8y 

Chcete-li získat podrobné informace o webové službě, spusťte následující příkaz:

docker service ps webservice

Měli byste vidět následující výstup:

ID NÁZEV OBRÁZKOVÝ UZEL POŽADOVANÝ STAV AKTUÁLNÍ CHYBA STAVU PORTSeye9zukwwrkq webservice.1 nginx:latest workernode Spuštěno Spuštěno před 3 minutami jelyj9gmeb7i webservice.2 nginx:latest masternode Spuštěno Spuštěno před 3 minutami 

Ověřit Docker Swarm

V tomto okamžiku jsme nasadili kontejner Nginx napříč uzly clusteru včetně uzlu pro správu. Nyní můžete přistupovat ke svému webovému serveru Nginx pomocí libovolné IP adresy uzlu Worker nebo Manager:

Závěr

Ve výše uvedené příručce jste se naučili, jak nastavit cluster Docker Swarm na CentOS 8. Nyní můžete do clusteru Docker Swarm přidat libovolný počet pracovních uzlů a škálovat svou aplikaci.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Redis na CentOS 7

  3. Jak nainstalovat a nakonfigurovat docker v Rocky Linux/Centos 8

  1. Jak nainstalovat a nakonfigurovat GitLab na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Redmine na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Redis na CentOS 8

  1. Jak nainstalovat a nakonfigurovat režim Docker Swarm na CentOS 7 / RHEL 7

  2. Jak nainstalovat a nakonfigurovat Sambu na CentOS 8

  3. Jak nainstalovat a nakonfigurovat GitLab CE na CentOS 7