Režim Docker Swarm je nástroj pro orchestraci a shlukování kontejneru pro správu hostitele Docker. Režim Docker Swarm je nativní součástí enginu Docker. To znamená, že nemusíte instalovat nic kromě enginu Docker, protože režim Docker swarm je součástí enginu Docker.
Režim Docker swarm je zaveden v Dockeru 1.12. Některé z klíčových výhod režimu Docker swarm jsou samoopravy kontejnerů , vyrovnávání zátěže , zvětšení kontejneru azmenšit , objevování služeb a průběžné aktualizace . V posledních několika článcích jsme probrali následující témata
- Jak nainstalovat Docker na CentOS 7
- Jak vytvářet obrazy kontejnerů Docker pomocí Dockerfile
V tomto článku si projdeme, jak nainstalovat a nakonfigurovat režim Docker Swarm na CentOS 7.x / RHEL 7.x Pro demonstraci budu používat 3 CentOS 7.x nebo RHEL 7.x Servery, na které nainstaluji docker engine. Z toho dva servery budou fungovat jako Docker Engine nebo Worker node a jeden bude působit jako manažer . V mém případě používám následující:
- dkmanager.example.com (172.168.10.70 ) – Bude fungovat jako manažer, který bude spravovat Docker engine nebo hostitele nebo pracovní uzel a bude fungovat také jako Docker engine.
- workernode1.example.com ( 172.168.10.80 ) – bude fungovat jako Docker engine nebo Worker Node
- workernode2.example.com (172.168.10.90) – bude fungovat jako Docker engine nebo Worker Node
Aktualizujte následující řádky v souboru /etc/hosts na všech serverech
172.168.10.70 dkmanager.example.com dkmanager172.168.10.80 workernode1.example.com workernode1172.168.10.90 2 examplenode 2 . examplenode de .Krok:1 Nainstalujte Docker Engine na všechny hostitele
Nejprve nastavte úložiště dockeru a poté spusťte příkaz beneath na všech hostitelích.
[[e-mail chráněný] ~]# yum install yum-utils –y[[email protected] ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/ docker-ce.repo[[chráněno e-mailem] ~]# instalace yum docker-ce docker-ce-cli containerd.io –y[[chráněno e-mailem] ~]# systemctl spustit docker[[chráněno e-mailem] ~]# systemctl povolit dockerOpakujte výše uvedené kroky pro workernode1 a workernode2
Poznámka:V době psaní tohoto článku byl k dispozici Docker verze 1.13.
Krok:2 Otevřete porty brány firewall na uzlech správce a pracovníků
Otevřete následující porty v bráně firewall operačního systému ve správci Docker pomocí níže uvedených příkazů
[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=2376/tcpsuccess[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=2377/tcpsuccess[ [chráněno e-mailem] ~]# firewall-cmd --permanent --add-port=7946/tcpsuccess[[email protected]ager ~]# firewall-cmd --permanent --add-port=7946/udpsuccess[[email protected ] ~]# firewall-cmd --permanent --add-port=4789/udpsuccess[[e-mail chráněný] ~]# firewall-cmd --permanent --add-port=80/tcpsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[e-mail chráněný] ~]#Restartujte službu docker ve správci docker
[[email protected] ~]# systemctl restart dockerOtevřete následující porty na každém pracovním uzlu a restartujte službu docker
~]# firewall-cmd --permanent --add-port=2376/tcp~]# firewall-cmd --permanent --add-port=7946/tcp~]# firewall-cmd --permanent -- add-port=7946/udp~]# firewall-cmd --permanent --add-port=4789/udp~]# firewall-cmd --permanent --add-port=80/tcp~]# firewall-cmd - -reload~]# systemctl restart dockerKrok:3 Inicializujte roj nebo cluster pomocí příkazu „docker swarm init“
Spusťte níže uvedený příkaz z manažerského uzlu (dkmanager) pro inicializaci clusteru.
[[email protected] ~]# init swarm docker --advertise-addr 172.168.10.70Tento příkaz udělá z našeho uzlu manažerský uzel a také inzerujeme IP adresu manažera ve výše uvedeném příkazu, aby se podřízený nebo pracovní uzel mohl připojit ke clusteru.
Spuštěním níže uvedeného příkazu ověřte stav správce a zobrazte seznam uzlů ve vašem clusteru
[[email protected] ~]# docker node lsID HOSTNAME STAV DOSTUPNOST SPRÁVCE Active mail STATUSn64oy. STATUS n64oy Přečtení ma [eximpikcomMůžeme také použít „informace o dockeru ” příkaz k ověření stavu roje
Krok:3 Přidejte pracovní uzly do roje nebo seskupení
Chcete-li přidat pracovní uzly do roje nebo klastru, spusťte příkaz, který dostaneme, když inicializujeme roj. Ukázkový příkaz je uveden v kroku 3
[[email protected] ~]# připojení k dockeru swarm --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr se připojilo ~[maile] chráněno před 172.70 172.168. ~Připojit se k # dockeru swarm --token SWMTKN-1-4jjyu1btmdky0ou6gl2dwgt24bolpsdn5yd77pohmcnmz0s288-11xwcvzjar29fskkhfvlzsmhr 172.168.10.70] Tento uživatel se připojil k 172.168.10.70 z 70. války[spr. e-mailem za 237."Ověřte stav uzlu pomocí příkazu „docker node ls ” ze správce dockerů
V tomto okamžiku je náš docker swarm mode nebo cluster spuštěn a běží se dvěma pracovními uzly. V dalším kroku uvidíme, jak definovat službu.
Krok:4 Spuštění služby v režimu Docker Swarm
V režimu roje Docker jsou kontejnery nahrazeny slovem úkoly a úkoly (nebo kontejnery) jsou spuštěny a nasazeny jako služba a předpokládejme, že chci vytvořit službu s názvem „webový server“ s pěti kontejnery a chcete se ujistit, že požadovaný stav kontejnerů ve službě je pět.
Níže uvedené příkazy spouštějte pouze ze Správce Docker.
[[e-mail chráněný] ~Vytvoření # služby dockeru -p 80:80 --name webserver --replicas 5 httpd7hqezhyak8jbt8idkkke8wizi[[e-mail chráněný] ~]#Výše uvedený příkaz vytvoří službu s názvem „webserver“, ve které je požadovaný stav kontejnerů nebo úkolu 5 a kontejnery budou spouštěny z obrázku dockeru „httpd “. Kontejnery budou nasazeny nad uzly clusteru, tj. dkmanager , workernode1 a workernode2
Vypište službu Docker pomocí níže uvedeného příkazu
[[email protected] ~]# docker service lsID JMÉNO REŽIM REPLIKACE OBRÁZEK7hqezhyak8jb webový server replikováno 5/5 httpd:nejnovější[[email preprotected]Provedením níže uvedeného příkazu zobrazíte stav vaší služby „webserver“
[[email chráněný] ~]# webový server služby docker
Podle výše uvedeného výstupu vidíme, že kontejnery jsou nasazeny napříč uzly clusteru včetně manažerského uzlu. Nyní můžeme přistupovat na webovou stránku z libovolného pracovního uzlu a Docker Manageru pomocí následujících adres URL:
http:// 172.168.10.70 nebo http://172.168.10.80 nebo http://172.168.10.90
Krok:5 Nyní otestujte samoléčení kontejneru
Samoléčení kontejneru je důležitou vlastností režimu docker swarm. Jak název napovídá, pokud se s kontejnerem něco pokazí, správce se ujistí, že pro službu „webový server“ musí běžet alespoň 5 kontejnerů. Odeberme kontejner z workernode2 a uvidíme, zda je spuštěn nový kontejner.
[[e-mail chráněný] ~]# docker ps[[e-mail chráněný] ~]# docker rm a9c3d2172670 -f
Nyní ověřte službu ze správce dockerů a zjistěte, zda je spuštěn nový kontejner
[[email chráněný] ~]# webový server služby docker
Podle výše uvedeného výstupu vidíme, že je na uzlu dkmanager spuštěn nový kontejner, protože jeden z kontejnerů na workernode2 je odstraněn
Krok:6 Zvětšení a zmenšení kontejnerů spojených se službou
V režimu Docker swarm můžeme zvětšovat a zmenšovat kontejnery nebo úkoly. Zvětšeme kontejnery na 7 pro službu „webový server ‘
[[email protected] ~]# docker service scale webserver=7webserver zmenšen na 7[[email protected] ~]#Znovu ověřte stav služby pomocí následujících příkazů
Pojďme zmenšit kontejner na 4 pro webový server služby
[[email protected] ~]# docker service scale webserver=4webserver scaled to 4[[email protected] ~]#Znovu ověřte službu pomocí níže uvedených příkazů
To je pro tento článek vše. Doufám, že máte představu, jak nainstalovat a nakonfigurovat režim docker swarm na CentOS 7.xa RHEL 7.x. Neváhejte se podělit o své názory a komentáře 🙂
Jak nainstalovat a nakonfigurovat Cobbler na CentOS 7.x Jak povolit nastavení proxy pro příkaz Yum na serverech RHEL / CentOSCent OS