Vytvořte Docker Swarm na Alpine Linux 3.9.0

Úvod

Tato příručka vám ukáže, jak vytvořit a nakonfigurovat Docker swarm pomocí několika serverů Alpine Linux 3.9.0 a Porttaineru. Mějte prosím na paměti, že Vultr nabízí aplikaci One-Click Docker App, která aktuálně podporuje CentOS 7 x64 i Ubuntu 16.04 x64.

Předpoklady

Chcete-li začít, budete potřebovat alespoň dva servery VC2 se systémem Alpine Linux 3.9.0. V rámci vašeho Docker swarmu bude jeden z těchto serverů fungovat jako manager node– rozhraní s externími sítěmi a delegování úloh na pracovní uzly. Druhý server pak bude fungovat jako worker node- provádějící úlohy, které mu byly delegovány manažerským uzlem.

Pamatujte, že pokud vaše aplikace vyžaduje redundanci a/nebo vyšší výpočetní výkon, můžete spustit více než dva servery a kroky uvedené v této příručce budou stále platit.

Rozvinutí

Navštivte rozhraní pro nasazení serveru Vultr .

Ujistěte se, že Vultr Cloud (VC2)je vybrána karta v horní části stránky.

V Server Locationsekci můžete vybrat libovolné umístění , ale všechny servery musí být ve stejném umístění , jinak na ně nebude možné nasadit roj Docker.

Vyberte ISO Libraryzáložku Server Typesekce a vyberte Alpine Linux 3.9.0 x86_64obrázek.

Vyberte vhodnou možnost ze Server Sizesekce. Tato příručka bude používat velikost serveru SSD 25 GB, ale ke splnění požadavků na zdroje vaší aplikace to nemusí stačit. I když Vultr usnadňuje upgrade velikosti serveru poté, co byl již spuštěn, měli byste stále pečlivě zvážit, jakou velikost serveru vaše aplikace potřebuje, aby fungovala optimálně.

V Additional Featuressekci musíte vybrat Enable Private Networkingmožnost. I když ostatní možnosti nejsou pro následování tohoto průvodce vyžadovány, měli byste zvážit, zda každá z nich dává smysl v kontextu vaší aplikace.

Pokud jste tuto Multiple Private Networksmožnost na svém účtu dříve povolili , budete muset pro své servery vybrat existující nebo vytvořit novou privátní síť. Pokud jste to nepovolili, můžete tuto sekci ignorovat. Informace o ruční konfiguraci privátních sítí naleznete v této příručce .

Firewall GroupSekci prozatím přeskočte . Exponované porty bude potřebovat pouze server působící jako manažerský uzel v Docker swarm a to by mělo být nakonfigurováno po nasazení serveru.

Úplně dole na stránce musíte zadat Server Qtyalespoň dvě. Jak již bylo zmíněno dříve, možná budete potřebovat více než dva servery, ale k provedení tohoto průvodce stačí dva.

Nakonec v Server Hostname & Labelčásti zadejte smysluplné a zapamatovatelné názvy hostitelů a štítky pro každý server. Pro účely této příručky bude název hostitele a štítek prvního serveru docker-managera Docker Manager, v tomto pořadí- a docker-workera Docker Workerpro druhý, v tomto pořadí.

Po dvojité kontrole všech vašich konfigurací můžete kliknutím na Deploy Nowtlačítko v dolní části stránky spustit servery.

Nainstalujte na servery Alpine Linux 3.9.0

Protože jste si vybrali operační systém z knihovny ISO Vultr, budete muset ručně nainstalovat a nakonfigurovat Alpine Linux 3.9.0 na každý server.

Poté, co dáte Vultru minutu nebo dvě na přidělení vašich serverů, klikněte na more optionsikonu se třemi tečkami pro Docker Managerserver v rozhraní správy serveru a poté vyberte View Consolemožnost.

Měli byste být přesměrováni do konzole s výzvou k přihlášení. Pokud ne, počkejte prosím ještě minutu, než Vultr dokončí nasazení vašich serverů.

Na výzvu k přihlášení zadejte rootjako uživatelské jméno. Živá verze Alpine Linux 3.9.0 (na které aktuálně běží vaše servery) nevyžaduje, aby superuživatel při přihlašování zadával heslo.

Jakmile se úspěšně přihlásíte do účtu root, uvidíte uvítací zprávu následovanou výzvou shellu, která vypadá takto:

localhost:~# 

Chcete-li spustit instalační program Alpine Linux, zadejte následující příkaz:

# setup-alpine

Nejprve vyberte vhodné rozložení klávesnice. Tato příručka bude používat usrozložení a variantu.

Při nastavování názvu hostitele vyberte stejný název hostitele, který jste nastavili pro tento server během implementace. Pokud jste přesně postupovali podle tohoto návodu, název hostitele by měl být docker-manager.

K dispozici by měla být dvě síťová rozhraní: eth0a eth1. Pokud vidíte pouze eth0, znamená to, že jste soukromou síť svých serverů nenakonfigurovali správně. Inicializujte eth0pomocí dhcpa inicializujte eth1pomocí soukromé IP adresy, masky sítě a brány, které byly tomuto serveru přiřazeny během nasazení. K těmto podrobnostem můžete přistupovat z rozhraní nastavení vašeho serveru. Po zobrazení výzvy neprovádějte žádnou ruční konfiguraci sítě.

Zadejte nové heslo pro účet root a poté vyberte časové pásmo vhodné pro umístění, do kterého jste tyto servery nasadili.

Pokud hodláte používat HTTP/FTP proxy, zadejte jeho URL, jinak URL proxy nenastavujte.

Vyberte klienta NTP pro správu synchronizace systémových hodin. Tato příručka bude používat busybox.

Když budete požádáni o použití zrcadla úložiště balíčků, buď je explicitně vyberte zadáním jeho čísla; automaticky detekovat a vybrat nejrychlejší zadáním f; nebo ručně upravte konfigurační soubor úložiště zadáním e, což se nedoporučuje, pokud neznáte Alpine Linux. Tato příručka bude používat první zrcadlo.

Pokud plánujete používat SSH k přístupu k vašim serverům nebo k hostování souborového systému založeného na SSH, vyberte server SSH, který chcete použít. Tato příručka bude používat openssh.

Po zobrazení výzvy pro disk použít, zvolte disk vdajako systyp.

Alpine Linux 3.9.0 by nyní měl být nainstalován na vašem serveru. Tento postup opakujte pro všechny ostatní servery, které jste dříve nasadili, a ujistěte se, že jste nahradili správné hodnoty pro název hostitele a eth1síťové rozhraní.

Konfigurace serveru po instalaci

V tuto chvíli vaše servery stále používají živou ISO verzi Alpine Linux 3.9.0. Chcete-li zavést systém z instalace SSD, navštivte rozhraní nastavení vašeho serveru, přejděte na Custom ISOpoložku postranní nabídky a klikněte na Remove ISOtlačítko. To by mělo restartovat server. Pokud ne, restartujte ručně.

Po dokončení restartování serveru přejděte zpět do webové konzole serveru Docker Manager.

Přihlaste se k účtu root pomocí hesla, které jste nastavili dříve během procesu instalace.

Povolte úložiště komunitních balíčků zrušením komentáře na třetím řádku /etc/apk/repositoriesusing vi. Edge a testovací úložiště můžete povolit podobným způsobem, ale není nutné, aby se řídili tímto průvodcem.

Synchronizujte lokální index balíčků serveru se vzdáleným úložištěm, které jste vybrali dříve, zadáním následujícího příkazu shell:

# apk update

Poté upgradujte zastaralé balíčky:

# apk upgrade

Stejně jako dříve opakujte tento konfigurační proces pro každý server, který jste nasadili dříve.

Nainstalujte Docker na své servery

Před instalací samotného balíčku Docker možná budete chtít vytvořit samostatného dockeruživatele. Můžete to provést pomocí následujícího příkazu:

# adduser docker

Poznámka: Tento nový uživatel a všichni uživatelé přidaní do nové dockerskupiny budou mít po instalaci balíčku Docker oprávnění root. Podívejte se na následující problém z úložiště Moby Github:

Due to the --privileged in docker, anyone added to the 'docker' group is root equivalent. Anyone in the docker group has a back door around all privilege escalation policy and auditing on the system.

This is different from someone being able to run running sudo to root, where they have policy, and audit applied to them.

Pokud chcete uživateli udělit oprávnění sudo docker, nejprve nainstalujte sudobalíček:

# apk add sudo

Poté vytvořte sudoskupinu:

# addgroup sudo

Nakonec přidejte dockeruživatele do sudoskupiny:

# adduser docker sudo

Nyní můžete podle kroku 4 této příručky dokončit konfiguraci sudo.

V tomto okamžiku jste připraveni nainstalovat balíček Docker. Upozorňujeme, že dockerk instalaci a konfiguraci Dockeru není nezbytně nutné mít samostatného uživatele schopného sudo , ale tato příručka se řídí touto konvencí.

Nainstalujte balíček Docker pomocí následujícího příkazu:

# apk add docker

Poté povolte inicializační skript Docker:

# rc-update add docker

Nakonec spusťte démona Docker:

# rc-service docker start

Pomocí tohoto příkazu můžete ověřit, že Docker běží:

# docker info

Stejně jako minule opakujte tento instalační proces Dockeru pro každý server, který jste nasadili na začátku.

Inicializujte Docker swarm s jedním manažerským uzlem a jedním pracovním uzlem

Po vyřešení všech těchto nastavení jste konečně připraveni vytvořit roj Dockerů.

Vytvořte roj a přidejte manažerský uzel

Přejděte zpět do webové konzole vašeho Docker Managerserveru. Tento server nakonfigurujete jako manažerský uzel ve vašem roji. Pokud jste se rozhodli vytvořit dockeruživatele dříve, přihlaste se pomocí tohoto účtu, nikoli pomocí superuživatele.

Zadejte následující příkaz, ale nahraďte 192.0.2.1jej soukromou (nikoli veřejnou) IP adresou, kterou váš Docker Managerserver přidělil:

$ docker swarm init --advertise-addr 192.0.2.1

Docker zobrazí příkaz, který můžete provést na jiných serverech v privátní síti a přidat je jako pracovní uzly do tohoto nového roje. Uložte tento příkaz.

Přidejte pracovní uzel

Nyní přejděte do webové konzole vašeho Docker Workerserveru a přihlaste se s dockeruživatelem, pokud jste ji vytvořili.

Chcete-li přidat tento server jako pracovní uzel do roje, který jste právě vytvořili, spusťte příkaz, který jste uložili z výstupu příkazu k vytvoření roje. Bude vypadat podobně jako následující:

$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377

Docker vypíše, zda se uzel dokázal připojit k roji. Pokud narazíte na problémy s přidáváním pracovních uzlů do roje, znovu zkontrolujte konfiguraci privátní sítě a vyhledejte řešení v této příručce .

Pokud jste na začátku nasadili více než dva servery, můžete zbytek přidat jako pracovní uzly do svého roje pomocí příkazu výše, čímž zvýšíte množství prostředků dostupných pro vaši aplikaci. Případně můžete přidat další manažerské uzly, ale to je nad rámec této příručky.

Nasaďte Portainer s SSL a spravujte svůj Docker swarm

V tomto okamžiku je váš roj Docker připraven k použití. Volitelně však můžete spustit hromádku Portainerů na manažerském uzlu ve vašem roji. Portainer nabízí pohodlné webové rozhraní pro správu vašeho roje a jeho uzlů.

Nyní je čas vytvořit skupinu firewallu pro váš roj. Pokud to vaše aplikace výslovně nevyžaduje, vystavujte porty pouze na svých manažerských uzlech . Vystavení portů na vašich pracovních uzlech bez pečlivého zvážení může způsobit zranitelnost.

Přejděte do rozhraní pro správu brány firewall a vytvořte novou skupinu brány firewall. Vaše aplikace by měla diktovat, které porty se mají vystavit, ale musíte přinejmenším vystavit port 9000pro Portainer. Použijte tuto skupinu brány firewall na Docker Managerserver.

I když to není vyžadováno, důrazně se doporučuje zabezpečit Porttainer pomocí SSL. Kvůli této příručce budete používat pouze certifikát OpenSSL podepsaný svým držitelem, ale měli byste zvážit použití Let's Encrypt v produkci.

Přejděte na webovou konzolu Docker Managerserveru, přihlaste se pomocí dockeruživatele a pomocí následujících příkazů vygenerujte certifikát OpenSSL s vlastním podpisem:

$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650

Vytvořte nový soubor ~/portainer-agent-stack.yml, s následujícím obsahem:

version: '3.2'

services:
  agent:
    image: portainer/agent
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
      CAP_HOST_MANAGEMENT: 1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /:/host
    networks:
      - agent_network
    deploy:
      mode: global

  portainer:
    image: portainer/portainer
    command: -H tcp://tasks.agent:9001 --tlsskipverify --ssl --sslcert /certs/portainer.pem --sslkey /certs/portainer.key
    ports:
      - target: 9000
        published: 9000
        protocol: tcp
        mode: host
    volumes:
      - portainer_data:/data
      - /home/docker/certs:/certs
    networks:
      - agent_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]

networks:
  agent_network:
    driver: overlay
    attachable: true

volumes:
  portainer_data:

Po úpravě tohoto konfiguračního souboru zásobníku Docker tak, aby odpovídal vašim požadavkům, jej můžete nasadit:

$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer

Chcete-li ověřit, že Porttainer funguje, spusťte následující příkaz poté, co jste dali Dockeru minutu nebo dvě na nasazení zásobníku:

$ docker ps

Uvidíte dva kontejnery s obrázky portainer/portainer:latesta portainer/agent:latest, které ověřují, že se Porttainer spustil správně.

Nyní můžete konfigurovat a spravovat svůj Docker swarm návštěvou veřejné IP adresy vašeho Docker Managerserveru na portu 9000pomocí HTTPS.


Zde je návod, jak zkontrolovat kontejnery Hyper-V na Windows 10 Insider

Zde je návod, jak zkontrolovat kontejnery Hyper-V na Windows 10 Insider

Společnost Microsoft v novém příspěvku na blogu vysvětlila, jak mohou Windows Insiders testovat kontejnery Hyper-V na Windows 10, nové virtualizační řešení, které umožňuje běh aplikací bez ovlivnění zbytku operačního systému.

Jak nainstalovat Harbor na CentOS 7

Jak nainstalovat Harbor na CentOS 7

Harbor je open source server registru podnikové třídy, který ukládá a distribuuje obrazy Docker. Harbor rozšiřuje open source Docker Distribution b

Nainstalujte Rancher OS přes iPXE

Nainstalujte Rancher OS přes iPXE

Rancher OS je velmi lehká linuxová distribuce postavená na Dockeru. Samotný OS váží kolem 20 MB. Tento tutoriál vám pomůže začít

V systému CoreOS nastavte svůj vlastní registr Docker

V systému CoreOS nastavte svůj vlastní registr Docker

Všichni známe a milujeme Docker, platformu pro vytváření, správu a distribuci aplikačních kontejnerů na více počítačích. Společnost Docker Inc. poskytuje službu t

Instalace docker-compose na CoreOS

Instalace docker-compose na CoreOS

Tento článek vysvětluje, jak nainstalovat docker-compose na CoreOS. V CoreOS je složka /usr/ neměnná, takže standardní cesta /usr/local/bin není k dispozici pro

Nainstalujte Docker CE na Ubuntu 18.04

Nainstalujte Docker CE na Ubuntu 18.04

Úvod Docker je aplikace, která nám umožňuje nasazovat programy, které jsou spouštěny jako kontejnery. Byl napsán v populárním programovacím jazyce Go

Vytvořte Docker Swarm na Alpine Linux 3.9.0

Vytvořte Docker Swarm na Alpine Linux 3.9.0

Úvod Tato příručka vám ukáže, jak vytvořit a nakonfigurovat Docker swarm pomocí několika serverů Alpine Linux 3.9.0 a Porttaineru. Prosím, uvědomte si to

Nasaďte aplikaci PHP pomocí Docker-compose

Nasaďte aplikaci PHP pomocí Docker-compose

PHP aplikace jsou obvykle tvořeny webovým serverem, relačním databázovým systémem a samotným jazykovým interpretem. V tomto tutoriálu budeme využívat

Vyvážení zatížení pomocí Dockeru

Vyvážení zatížení pomocí Dockeru

Když spouštíte webovou aplikaci, obvykle chcete ze svých zdrojů vytěžit maximum, aniž byste museli převádět software, aby používal více vláken nebo

Nasaďte aplikaci Node.js pomocí Dockeru

Nasaďte aplikaci Node.js pomocí Dockeru

Tento článek vám ukáže, jak nasadit aplikaci Node v kontejneru Docker. Poznámka: Tento kurz předpokládá, že máte nainstalovaný a přečtený Docker

Instalace Docker CE na CentOS 7

Instalace Docker CE na CentOS 7

Technologie kontejnerů Docker umožňuje spouštět aplikace ve specifickém a izolovaném prostředí. Docker Community Edition (CE) je nový název pro free

Nasaďte Kubernetes s Kubeadm na CentOS 7

Nasaďte Kubernetes s Kubeadm na CentOS 7

Přehled Tento článek vám má pomoci během okamžiku zprovoznit a spustit cluster Kubernetes s kubeadm. Tato příručka bude nasazovat dva servery, na

Instalace Dockeru na CentOS 7

Instalace Dockeru na CentOS 7

Používáte jiný systém? Docker je aplikace, která umožňuje nasazení softwaru v rámci virtuálních kontejnerů. Bylo to napsáno v programu Go

Instalace Docker CE na Debian 9

Instalace Docker CE na Debian 9

Používáte jiný systém? Úvod Docker je aplikace, která umožňuje nasazení softwaru ve virtuálních kontejnerech. Bylo to napsáno v G

Sticky Session With Docker Swarm (CE) na Debianu 9

Sticky Session With Docker Swarm (CE) na Debianu 9

Používáte jiný systém? Úvod Docker Swarm promění vaše jednotlivé servery na shluk počítačů; usnadnění škálování, vysoká dostupnost an

Dva nástroje pro správu grafiky Docker: DockerUI a Shipyard

Dva nástroje pro správu grafiky Docker: DockerUI a Shipyard

Pomocí aplikace Vultr Docker můžete snadno nasadit Docker na instanci serveru Vultr. Mezitím můžete usnadnit správu Dockeru

Nainstalujte Rancher Server na RancherOS

Nainstalujte Rancher Server na RancherOS

Přehled RancherOS je neuvěřitelně lehký operační systém (jen asi 60 MB), který spouští systémového démona Docker jako PID 0 pro spouštění systémových služeb.

Začínáme s Kubernetes na CentOS 7

Začínáme s Kubernetes na CentOS 7

Kubernetes je platforma s otevřeným zdrojovým kódem vyvinutá společností Google pro správu kontejnerových aplikací napříč clusterem serverů. Staví na desetiletí a

Nastavte Sentry přes Docker na Ubuntu 16.04

Nastavte Sentry přes Docker na Ubuntu 16.04

Používáte jiný systém? Úvod Sentry je open source řešení pro sledování chyb. Sentry sleduje výjimky a další užitečné zprávy

Sticky Session With Docker Swarm (CE) na CentOS 7

Sticky Session With Docker Swarm (CE) na CentOS 7

Používáte jiný systém? Úvod Docker Swarm promění vaše jednotlivé servery na shluk počítačů, což usnadňuje škálování, vysokou dostupnost a

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více