Další informace o datových centrech
Docker Swarm je jedním z nejjednodušších clusterů kontejnerů, které můžete nasadit. Během několika minut můžete mít svůj cluster v provozu a zajistit vysokou dostupnost, převzetí služeb při selhání a škálovatelnost. Jakmile budou spuštěny, můžete nasadit kontejnery do roje a využít výhod clusteru. Můžete například nasadit službu, která se může škálovat tak, aby vyhovovala jakékoli poptávce.
To je přesně to, co vám ukážu. Zde nejprve nainstalujeme Docker Swarm a poté nasadíme službu do nového clusteru tak, aby jej bylo možné škálovat do jakéhokoli stupně, který vyhovuje potřebám vaší společnosti.
Co budete potřebovat
Budu demonstrovat na clusteru složeném z jednoho řadiče a dvou uzlů, které všechny poběží na Ubuntu Server 20.04. Pokud používáte jinou distribuci Linuxu, možná budete muset změnit kroky instalace Dockeru (ale nic víc).
S tím řečeným, pojďme se rojit.
Jak nainstalovat Docker
První věc, kterou musíme udělat, je nainstalovat Docker. Ujistěte se, že postupujete podle stejných kroků na svém ovladači a na libovolném počtu uzlů, které plánujete nasadit.
Přihlaste se na svůj server a aktualizujte apt pomocí:
sudo apt-get update
Dále nainstalujte potřebné závislosti příkazem:
sudo apt-get install ca-certificates curl gnupg lsb-release -y
Přidejte oficiální klíč GPG Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Přidejte stabilní úložiště Docker pomocí:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Nainstalujte Docker Engine pomocí:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
Spusťte a povolte Docker pomocí:
sudo systemctl enable --now docker
Přidejte svého uživatele do skupiny dockerů pomocí příkazu:
sudo usermod -aG docker $USER
Upozorněte systém na novou skupinu pomocí:
newgrp docker
Opakujte výše uvedené kroky pro všechny vaše uzly.
Zpět na ovladači Docker inicializujte roj pomocí:
docker swarm init --advertise-addr SERVER
Kde SERVER je IP adresa pro Docker Controller.
Poté se vám zobrazí příkaz join, který bude vypadat asi takto:
docker swarm join --token SWMTKN-1-46uxtlbe3wrelly1fe5e65p1wdvg95bcjo48izvptpwof62rdo-42yl4jprovhng56sgxmyv7arv 192.168.1.13:2377
Zkopírujte tento příkaz a spusťte jej ze všech svých uzlů. Jakmile to uděláte, můžete spojení ověřit zadáním následujícího příkazu na ovladači:
docker info
Měli byste vidět výstup podobný tomuto:
Swarm: active
NodeID: wb44efzwy68x9gek45ee1nbnb
Is Manager: true
ClusterID: vjec4hz1sjj535x9w0mspox87
Managers: 1
Nodes: 3
Default Address Pool: 10.0.0.0/8
SubnetSize: 24
Data Path Port: 4789
Orchestration:
Task History Retention Limit: 5
Jak nasadit službu do roje
Nyní můžeme nasadit službu do našeho roje. Pojďme to zpočátku zjednodušit a nasadit kontejnerovou službu NGINX, se kterou nemůžeme komunikovat. Chcete-li to provést, zadejte na ovladači následující příkaz:
docker service create --name nginx_test nginx
Chcete-li zkontrolovat stav služby, zadejte příkaz:
docker service ls
Měli byste vidět, že naše služba NGINX byla replikována s výstupem podobným tomuto:
zie1n4nm5es3 nginx_test replicated 1/1 nginx:latest
Náš výše uvedený příklad využívá pouze jeden z našich uzlů. Co když chceme tuto službu nasadit do všech tří uzlů? Náš příkaz by proto byl něco takového:
docker service create --replicas 3 --name nginx3nodes nginx
Zadejte příkaz:
docker service ls
Měli byste vidět, že naše nasazení nginx3nodes bylo replikováno na 3 ze 3 uzlů s následujícím výstupem:
y1yu8fq27aab nginx3nodes replicated 3/3 nginx:latest
Služba nyní využívá všechny tři uzly v našem clusteru. Tuto službu můžete zmenšit na 2 uzly pomocí příkazu:
docker service scale nginx3nodes=2
Zkontrolujte stav pomocí:
docker service ls
Nyní byste měli vidět službu nginx na 2/2 uzlech.
Řekněme, že máte ve svém roji pět uzlů. Pokud chcete službu škálovat na všech pět uzlů, příkaz by byl:
docker service scale nginx3nodes=5
Chcete-li službu odstranit, zadejte příkaz:
docker service rm nginx3nodes
Řekněme, že chcete aktualizovat obrázek kontejneru v nasazení. Od původního nasazení uplynulo několik dní a vy se chcete ujistit, že používáte nejnovější dostupný obrázek kontejneru. Budeme předpokládat, že nginx:latest je aktualizovaný obrázek kontejneru a pro aktualizaci této služby pomocí nového obrázku byste zadali příkaz:
docker service update --image nginx:latest nginx3nodes
Jedna poznámka na závěr, chcete-li snadněji spravovat roj, nasaďte Porttainer na ovladač pomocí příkazu:
docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
Po nasazení přejděte na http://SERVER:9443 (kde SERVER je adresa IP serveru). Po vytvoření administrátora a přihlášení byste měli vidět Swarm uvedený v levé navigaci. Kliknutím na něj zobrazíte svůj cluster (obrázek A ).
Obrázek A
A to jsou v podstatě základy spuštění Docker Swarmu a nasazení služby do uzlů.
Přihlaste se k odběru TechRepublic Jak zajistit, aby technologie fungovala na YouTube za všechny nejnovější technické rady pro obchodní profesionály od Jacka Wallena.
Zdrojový odkaz