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 lsMě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.5Spuš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 nginxMě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 lsMě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/tcpSpuštěný kontejner můžete také zkontrolovat pomocí následujícího příkazu:
docker psMě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.jelyj9gmeb7ikl2scg7mz8yChcete-li získat podrobné informace o webové službě, spusťte následující příkaz:
docker service ps webserviceMě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 minutamiOvěř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.
Jak nainstalovat Shopware 6 s NGINX a Lets Encrypt na CentOS 8 Jak nainstalovat Passbolt Self-Hosted Password Manager na CentOS 8Cent OS