<šablona x-if=visible><šablona x-if=$isMobile()>
Než začnete
-
Dokončení této příručky bude vyžadovat alespoň dva linody umístěné ve stejném datovém centru. Pokyny v této příručce byly napsány pro Ubuntu 16.04, ale lze použít i jiné distribuce; Linodes nemusí používat stejnou distribuci.
-
Při aktualizaci systému postupujte podle našeho průvodce nastavením a zabezpečením výpočetní instance. Můžete také chtít nastavit časové pásmo, nakonfigurovat název hostitele, vytvořit omezený uživatelský účet a posílit přístup SSH.
-
Nainstalujte Docker na každý Linode. Další informace naleznete v naší příručce Instalace Dockeru a nasazení sady LAMP nebo instalační dokumentaci Dockeru.
Poznámka Kroky v této příručce vyžadují oprávnění root. Níže uvedené kroky spusťte jakoroot
nebo pomocísudo
předpona. Další informace o oprávněních naleznete v naší příručce Uživatelé a skupiny.
Zvyšte výkon Dockeru vytvořením clusteru hostitelů Dockeru, který se nazývá Docker Swarm. Potřebujete jeden Linode, který bude sloužit jako správce Docker Swarm Manager, a několik hostitelů Dockeru, abyste se připojili k Swarmu jako Nodes.
V této příručce nastavíte správce Docker Swarm Manager a připojíte uzly pro škálovatelné nasazení kontejneru. To vyžaduje více Linodů s nainstalovaným Dockerem a spuštěným ve stejném datovém centru. Nemusí provozovat stejnou distribuci.
Vytvoření správce Docker Swarm Manager
Účelem Docker Swarm Manager je přijímat příkazy jménem clusteru a přiřazovat kontejnery uzlům. Swarm Manager používá Raft Consensus Algorithm ke správě stavů Swarm. Raft Consensus Algorithm zajišťuje, že všechny manažerské uzly, které mají na starosti správu a plánování úloh v klastru, ukládají stejný, konzistentní stav. Pokud dojde k selhání, jeden uzel převezme úkoly a obnoví stabilní stav.
V této příručce vytvoříme jednoho Swarm Managera. Pokud je vaším cílem vysoká dostupnost, můžete vytvořit více správců.
-
Přihlaste se do Linode, který jste vybrali pro správce Swarm a inicializujte správce. Nahraďte
PUBLIC_IP
v tomto příkladu s veřejnou IP adresou Linode:docker swarm init --advertise-addr PUBLIC_IP
Docker odpoví příkazem nezbytným pro připojení uzlů k Swarmu:
-
Použijte
docker info
pro ověření, že váš Swarm běží a je aktivní:docker info
Připojit uzly ke správci
V kroku 1 v předchozí části docker swarm init
příkaz vydává pokyny, jak se připojit ke správci.
docker swarm join --token TOKEN PUBLIC_IP:2377
Kde TOKEN
je dlouhý řetězec znaků, který se vám zobrazí při inicializaci Swarmu, a PUBLIC_IP
je veřejná IP adresa vašeho Swarm Manager Linode. Pokud si token nepamatujete, spusťte join-token
na manažeru pro zobrazení informací z swarm init
příkaz:
docker swarm join-token worker
-
Chcete-li se připojit k uzlu k Swarmu, spusťte
docker swarm join
z uzlu. ZměňteTOKEN
na token z kroku 1 v předchozí části aPUIBLIC_IP
na veřejnou IP správce:docker swarm join --token TOKEN PUBLIC_IP:2377
Výstup ukazuje, že se uzel připojil k roji jako pracovník. Nyní máte malý cluster Docker Swarm s jedním správcem a jedním uzlem:
-
Opakujte krok 1 a připojte tolik uzlů k Swarmu, kolik potřebujete.
-
Ve správci použijte
docker node ls
pro zobrazení informací o manažerovi a seznamu všech uzlů:docker node ls
Nasazení služby pomocí Docker Swarm
Chcete-li nasadit službu s Docker Swarm, použijte správce k přípravě jednoho uzlu a poté jej škálujte konfiguraci, která odpovídá vašim potřebám. V tomto příkladu nainstalujete NGINX na jeden uzel a poté jej škálujete na shluk (roj) tří uzlů.
-
Ve Swarm Manageru použijte
service create
k nasazení služby do uzlu. Změňtenginxexample
na cokoliv chcete:docker service create -p 80:80 --name nginxexample nginx
-
Škálujte službu NGINX na tři uzly:
docker service scale nginxexample=3
-
Ověřte, zda byla služba nasazena pomocí
docker ps -a
z libovolného uzlu:docker ps -a
-
Chcete-li zastavit
nginxexample
použijteservice remove
příkaz:docker service remove nginxexample
Další informace
Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.
- Docker Docs
- Výukový program Docker Try it
- Docker Hub