GNU/Linux >> Znalost Linux >  >> Linux

Jak nasadit službu do clusteru Docker Swarm

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


Linux
  1. Jak nasadit Nginx Load Balancing na Kubernetes Cluster na Ubuntu 18.04 LTS

  2. Jak nasadit mikroslužby s Dockerem

  3. Jak nasadit PostgreSQL jako Docker Container

  1. Jak nasadit svůj první modul na clusteru Kubernetes

  2. Jak nasadit aplikace s Rancherem

  3. Jak nasadit kontejner nginx s Dockerem na Linode

  1. Jak nasadit PostgreSQL na Docker Container

  2. Jak nasadit a spustit Redis v Dockeru

  3. Jak nasadit NGINX Reverse Proxy na Docker