Stvorite Docker Swarm na Alpine Linuxu 3.9.0

Uvod

Ovaj vodič će vam pokazati kako stvoriti i konfigurirati Docker roj koristeći više Alpine Linux 3.9.0 poslužitelja i Portainera. Imajte na umu da Vultr nudi Docker aplikaciju jednim klikom koja trenutno podržava i CentOS 7 x64 i Ubuntu 16.04 x64.

Preduvjeti

Za početak, trebat će vam najmanje dva VC2 poslužitelja s Alpine Linux 3.9.0. Unutar vašeg Docker roja, jedan od tih poslužitelja će djelovati kao manager nodesučelje s vanjskim mrežama i delegiranje poslova na radne čvorove. Drugi će poslužitelj tada djelovati kao worker node- izvršavanje poslova koje mu delegira upraviteljski čvor.

Imajte na umu da možete pokrenuti više od dva poslužitelja ako vaša aplikacija zahtijeva redundantnost i/ili više računalne snage, a koraci navedeni u ovom vodiču i dalje će se primjenjivati.

Razmještaj

Posjetite sučelje za postavljanje poslužitelja Vultr .

Provjerite je li Vultr Cloud (VC2)kartica odabrana na vrhu stranice.

Možete odabrati bilo koju lokaciju iz Server Locationodjeljka, međutim svi poslužitelji moraju biti na istoj lokaciji , inače neće biti moguće implementirati Docker roj na njih.

Odaberite ISO Librarykarticu Server Typeodjeljka i odaberite Alpine Linux 3.9.0 x86_64sliku.

Odaberite odgovarajuću opciju iz Server Sizeodjeljka. Ovaj vodič koristit će veličinu SSD poslužitelja od 25 GB, ali to može biti nedovoljno za ispunjavanje zahtjeva za resursima vaše aplikacije. Iako Vultr olakšava nadogradnju veličine poslužitelja nakon što je već pokrenut, ipak biste trebali pažljivo razmotriti koju veličinu poslužitelja vaša aplikacija treba da bi radila optimalno.

U Additional Featuresodjeljku morate odabrati Enable Private Networkingopciju. Iako ostale opcije nisu potrebne za praćenje ovog vodiča, trebali biste razmotriti ima li svaka od njih smisla u kontekstu vaše prijave.

Ako ste prethodno omogućili Multiple Private Networksopciju na svom računu, tada ćete morati odabrati postojeću ili stvoriti novu privatnu mrežu za svoje poslužitelje. Ako ga niste omogućili, možete zanemariti ovaj odjeljak. Za informacije o ručnom konfiguriranju privatnih mreža pogledajte ovaj vodič .

Firewall GroupZa sada preskočite odjeljak. Samo poslužitelj koji djeluje kao upraviteljski čvor u Docker roju trebat će otvorene portove, a to bi trebalo biti konfigurirano nakon postavljanja poslužitelja.

Na samom dnu stranice morate unijeti Server Qtynajmanje dva. Kao što je već spomenuto, možda će vam trebati više od dva poslužitelja, ali dva su dovoljna za praćenje ovog vodiča.

Konačno, u Server Hostname & Labelodjeljku unesite smislena i nezaboravna imena hosta i oznake za svaki poslužitelj. Za potrebe ovog vodiča, ime hosta i oznaka prvog poslužitelja bit će docker-manageri Docker Manager, odnosno - i docker-workeri Docker Workerza drugi, respektivno.

Nakon dvostruke provjere svih vaših konfiguracija, možete kliknuti Deploy Nowgumb na dnu stranice da pokrenete svoje poslužitelje.

Instalirajte Alpine Linux 3.9.0 na poslužitelje

Budući da ste odabrali OS iz Vultrove ISO biblioteke, morat ćete ručno instalirati i konfigurirati Alpine Linux 3.9.0 na svakom poslužitelju.

Nakon što Vultru date minutu ili dvije da dodijeli vaše poslužitelje, kliknite more optionsikonu s trostrukom točkom za Docker Managerposlužitelj na sučelju za upravljanje poslužiteljem , a zatim odaberite View Consoleopciju.

Trebali biste biti preusmjereni na konzolu s upitom za prijavu. Ako ne, pričekajte još jednu minutu da Vultr završi s postavljanjem vaših poslužitelja.

U tom upitu za prijavu unesite rootkorisničko ime. Verzija Alpine Linuxa 3.9.0 uživo (na kojoj trenutno rade vaši poslužitelji) ne zahtijeva od superkorisnika unos lozinke prilikom prijave.

Nakon što ste se uspješno prijavili na root račun, vidjet ćete poruku dobrodošlice praćenu promptom ljuske koji izgleda ovako:

localhost:~# 

Da biste pokrenuli instalacijski program Alpine Linux, unesite sljedeću naredbu:

# setup-alpine

Prvo odaberite odgovarajući raspored tipkovnice. Ovaj vodič će koristiti usizgled i varijantu.

Prilikom postavljanja imena hosta, odaberite isto ime hosta koje ste postavili za ovaj poslužitelj tijekom implementacije. Ako ste točno slijedili ovaj vodič, ime hosta bi trebalo biti docker-manager.

Trebala bi biti dostupna dva mrežna sučelja: eth0i eth1. Ako vidite samo eth0, to znači da niste ispravno konfigurirali privatnu mrežu svojih poslužitelja. Inicijalizirajte eth0pomoću dhcpi inicijalizirajte eth1korištenjem privatne IP adrese, mrežne maske i pristupnika koji je ovom poslužitelju dodijeljen tijekom implementacije. Ovim pojedinostima možete pristupiti iz sučelja postavki vašeg poslužitelja. Kada se to od vas zatraži, nemojte izvoditi ručnu konfiguraciju mreže.

Unesite novu lozinku za korijenski račun, a zatim odaberite vremensku zonu prikladnu za lokaciju na koju ste odabrali postaviti te poslužitelje.

Ako namjeravate koristiti HTTP/FTP proxy, unesite njegov URL, inače nemojte postavljati proxy URL.

Odaberite NTP klijent za upravljanje sinkronizacijom sata sustava. Ovaj vodič će koristiti busybox.

Kada se od vas zatraži da se koristi zrcalo spremišta paketa, ili ga odaberite eksplicitno unosom njegovog broja; automatski otkriti i odabrati najbrži unosom f; ili ručno uredite konfiguracijsku datoteku spremišta unosom e, što se ne preporučuje osim ako niste upoznati s Alpine Linuxom. Ovaj vodič će koristiti prvo zrcalo.

Ako planirate koristiti SSH za pristup svojim poslužiteljima ili za hostiranje datotečnog sustava baziranog na SSH-u, odaberite SSH poslužitelj za korištenje. Ovaj vodič će koristiti openssh.

Kada se od vas zatraži da koristite disk, odaberite disk vdakao sysvrstu.

Alpine Linux 3.9.0 sada bi trebao biti instaliran na vašem poslužitelju. Ponovite ovaj postupak za sve ostale poslužitelje koje ste prethodno postavili, osiguravajući da zamijenite ispravne vrijednosti za ime hosta i eth1mrežno sučelje.

Konfiguracija poslužitelja nakon instalacije

U ovom trenutku, vaši poslužitelji još uvijek koriste živu ISO verziju Alpine Linux 3.9.0. Da biste se pokrenuli sa SSD instalacije, posjetite sučelje postavki vašeg poslužitelja, idite na Custom ISOunos bočnog izbornika i kliknite Remove ISOgumb. Ovo bi trebalo ponovno pokrenuti poslužitelj. Ako se ne dogodi, ponovno pokrenite ručno.

Nakon što poslužitelj završi ponovno pokretanje, vratite se na web konzolu za poslužitelj Docker Manager.

Prijavite se na root račun koristeći lozinku koju ste prethodno postavili tijekom procesa instalacije.

Omogućite spremište paketa zajednice dekomentiranjem trećeg retka /etc/apk/repositorieskorištenja vi. Možete omogućiti rubna i testna spremišta na sličan način, ali oni nisu obvezni slijediti ovaj vodič.

Sinkronizirajte poslužiteljov lokalni indeks paketa s udaljenim spremištem koje ste ranije odabrali unosom sljedeće naredbe ljuske:

# apk update

Zatim nadogradite zastarjele pakete:

# apk upgrade

Kao i prije, ponovite ovaj postupak konfiguracije za svaki poslužitelj koji ste prethodno postavili.

Instalirajte Docker na svoje poslužitelje

Prije instaliranja samog Docker paketa, možda ćete htjeti stvoriti zasebnog dockerkorisnika. To možete učiniti pomoću sljedeće naredbe:

# adduser docker

Napomena: Ovaj novi korisnik i svi korisnici dodani u novu dockergrupu imat će root privilegije nakon što se Docker paket instalira. Pogledajte sljedeći problem iz Moby Github repozitorija:

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.

Ako korisniku želite dati dopuštenje sudo docker, prvo instalirajte sudopaket:

# apk add sudo

Zatim stvorite sudogrupu:

# addgroup sudo

Na kraju dodajte dockerkorisnika u sudogrupu:

# adduser docker sudo

Sada možete slijediti 4. korak ovog vodiča da završite konfiguriranje sudoa.

U ovom trenutku, spremni ste za instalaciju Docker paketa. Imajte na umu da nije striktno potrebno imati zasebnog dockerkorisnika sposobnog za sudo za instalaciju i konfiguraciju Dockera, ali ovaj vodič slijedi tu konvenciju.

Instalirajte Docker paket sljedećom naredbom:

# apk add docker

Zatim omogućite Docker init skriptu:

# rc-update add docker

Konačno, pokrenite Docker demon:

# rc-service docker start

Ovom naredbom možete provjeriti radi li se Docker:

# docker info

Kao i prošli put, ponovite ovaj postupak instalacije Dockera za svaki poslužitelj koji ste postavili na početku.

Inicijalizirajte Docker roj s jednim čvorom upravitelja i jednim čvorom radnika

Nakon što ste riješili sve te postavke, konačno ste spremni za stvaranje Docker roja.

Napravite roj i dodajte čvor upravitelja

Vratite se na web konzolu vašeg Docker Managerposlužitelja. Konfigurirat ćete ovaj poslužitelj kao upraviteljski čvor u vašem roju. Ako ste dockerranije odlučili stvoriti korisnika, prijavite se koristeći taj račun, a ne superkorisnik.

Unesite sljedeću naredbu, ali zamijenite 192.0.2.1privatnom (ne javnom), IP adresom koju je vaš Docker Managerposlužitelj dodijelio:

$ docker swarm init --advertise-addr 192.0.2.1

Docker će prikazati naredbu koju možete izvršiti na drugim poslužiteljima u privatnoj mreži kako biste ih dodali kao radne čvorove ovom novom roju. Spremite ovu naredbu.

Dodajte radni čvor

Sada idite na web konzolu svog Docker Workerposlužitelja, prijavite se s dockerkorisnikom ako ste ga stvorili.

Za dodavanje ovog poslužitelja kao radnog čvora roju koji ste upravo stvorili, izvedite naredbu koju ste spremili iz izlaza naredbe za stvaranje roja. Izgledat će slično sljedećem:

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

Docker će ispisati je li se čvor uspio pridružiti roju. Ako naiđete na probleme s dodavanjem radnih čvorova u roj, dvaput provjerite konfiguraciju privatne mreže i pogledajte ovaj vodič za rješavanje problema.

Ako ste na početku implementirali više od dva poslužitelja, možete dodati ostale kao radne čvorove svom roju koristeći gornju naredbu, povećavajući količinu resursa dostupnih vašoj aplikaciji. Alternativno, možete dodati dodatne čvorove upravitelja, ali to je izvan dosega ovog vodiča.

Postavite Portainer sa SSL-om za upravljanje svojim Docker rojem

U ovom trenutku vaš je Docker roj spreman za upotrebu. Međutim, možete po želji pokrenuti Portainer stog na čvoru upravitelja u vašem roju. Portainer nudi praktično web sučelje za upravljanje vašim rojem i čvorovima u njemu.

Sada je vrijeme da stvorite grupu vatrozida za svoj roj. Osim ako vaša aplikacija to izričito ne zahtijeva, izložite portove samo na čvorovima upravitelja . Izlaganje portova na vašim radničkim čvorovima bez pažljivog razmatranja može dovesti do ranjivosti.

Dođite do sučelja za upravljanje vatrozidom i stvorite novu grupu vatrozida. Vaša aplikacija treba diktirati koje portove treba izložiti, ali morate, u najmanju ruku, otkriti port 9000za Portainer. Primijenite ovu grupu vatrozida na Docker Managerposlužitelj.

Iako to nije potrebno, snažno se preporučuje osiguranje Portainera SSL-om. Radi ovog vodiča, koristit ćete samo samopotpisani OpenSSL certifikat, ali biste trebali razmisliti o korištenju Let's Encrypt u proizvodnji.

Idite na web konzolu Docker Managerposlužitelja, prijavite se pomoću dockerkorisnika i koristite sljedeće naredbe za generiranje samopotpisanog OpenSSL certifikata:

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

Napravite novu datoteku, ~/portainer-agent-stack.yml, sa sljedećim sadržajem:

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:

Nakon što modificirate ovu konfiguracijsku datoteku Docker stoga kako bi bila u skladu s vašim zahtjevima, možete je implementirati:

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

Da biste provjerili radi li Portainer, izvedite sljedeću naredbu nakon što ste Dockeru dali minutu ili dvije da razmjesti stog:

$ docker ps

Vidjet ćete dva spremnika sa slikama portainer/portainer:latesti portainer/agent:latest, što potvrđuje da je Portainer ispravno pokrenut.

Sada možete konfigurirati i upravljati svojim Docker rojem posjetom javne IP adrese vašeg Docker Managerposlužitelja na portu 9000koristeći HTTPS.


Instalirajte Rancher OS putem iPXE

Instalirajte Rancher OS putem iPXE

Rancher OS je vrlo lagana distribucija Linuxa izgrađena oko Dockera. Sam OS teži oko 20MB. Ovaj vodič će vas pokrenuti i pokrenuti

Instalacija docker-compose na CoreOS

Instalacija docker-compose na CoreOS

Ovaj članak objašnjava kako instalirati docker-compose na CoreOS. U CoreOS-u, /usr/ mapa je nepromjenjiva pa je standardna /usr/local/bin putanja nedostupna za

Instalirajte Docker CE na Ubuntu 18.04

Instalirajte Docker CE na Ubuntu 18.04

Uvod Docker je aplikacija koja nam omogućuje implementaciju programa koji se pokreću kao spremnici. Napisana je u popularnom programskom jeziku Go

Stvorite Docker Swarm na Alpine Linuxu 3.9.0

Stvorite Docker Swarm na Alpine Linuxu 3.9.0

Uvod Ovaj vodič će vam pokazati kako stvoriti i konfigurirati Docker roj koristeći više Alpine Linux 3.9.0 poslužitelja i Portainera. Imajte na umu da

Postavite PHP aplikaciju pomoću Docker-compose

Postavite PHP aplikaciju pomoću Docker-compose

PHP aplikacije obično se sastoje od web poslužitelja, sustava relacijske baze podataka i samog tumača jezika. U ovom tutorialu bit ćemo poluga

Balans opterećenja s Dockerom

Balans opterećenja s Dockerom

Kada izvodite web-aplikaciju, obično želite maksimalno iskoristiti svoje resurse bez potrebe da konvertirate svoj softver za korištenje višenitnog rada o

Postavite Node.js aplikaciju pomoću Dockera

Postavite Node.js aplikaciju pomoću Dockera

Ovaj članak će vam pokazati kako implementirati svoju Node aplikaciju unutar Docker spremnika. Napomena: Ovaj vodič pretpostavlja da imate instaliran i pročitan Docker

Instaliranje Dockera na CentOS 7

Instaliranje Dockera na CentOS 7

Korištenje drugog sustava? Docker je aplikacija koja omogućuje implementaciju softvera unutar virtualnih spremnika. Napisano je u Go programu

Instalacija Docker CE na Debian 9

Instalacija Docker CE na Debian 9

Korištenje drugog sustava? Uvod Docker je aplikacija koja omogućuje implementaciju softvera unutar virtualnih spremnika. Napisano je u G

Započnite sa SQL Serverom 2017 (MS-SQL) na CentOS 7 uz Docker

Započnite sa SQL Serverom 2017 (MS-SQL) na CentOS 7 uz Docker

Preduvjeti Docker engine 1.8+. Najmanje 4 GB prostora na disku. Minimalno 4 GB RAM-a. Korak 1. Instalirajte Docker Da biste instalirali SQL-Server, potrebno je Docker

Sticky Session with Docker Swarm (CE) na Debianu 9

Sticky Session with Docker Swarm (CE) na Debianu 9

Korištenje drugog sustava? Uvod Docker Swarm pretvara vaše pojedinačne poslužitelje u klaster računala; olakšavanje skaliranja, visoka dostupnost an

Dva Docker grafička alata za upravljanje: DockerUI i Shipyard

Dva Docker grafička alata za upravljanje: DockerUI i Shipyard

Uz pomoć aplikacije Vultr Docker, možete jednostavno postaviti Docker na svoju instancu poslužitelja Vultr. U međuvremenu, možete olakšati zadatak upravljanja Dockerom

Instalirajte Rancher Server na RancherOS

Instalirajte Rancher Server na RancherOS

Pregled RancherOS je nevjerojatno lagan operativni sustav (samo oko 60 MB) koji pokreće sistemski Docker demon kao PID 0 za pokretanje sistemskih usluga

Instalirajte Rancher na Ubuntu 16.04

Instalirajte Rancher na Ubuntu 16.04

Korištenje drugog sustava? Uvod Rancher je platforma otvorenog koda za pokretanje kontejnera i izgradnju privatnog kontejnerskog servisa. Rančer je baza

Postavite Sentry putem Dockera na Ubuntu 16.04

Postavite Sentry putem Dockera na Ubuntu 16.04

Korištenje drugog sustava? Uvod Sentry je rješenje otvorenog koda za praćenje pogrešaka. Sentry prati iznimke i druge korisne poruke

Instaliranje Dockera na Ubuntu 14.04

Instaliranje Dockera na Ubuntu 14.04

Korištenje drugog sustava? Docker je aplikacija koja omogućuje implementaciju programa koji se pokreću kao kontejneri. Napisano je u popularnom Go programu

Sigurno implementirajte i upravljajte LXC spremnicima na Ubuntu 14.04

Sigurno implementirajte i upravljajte LXC spremnicima na Ubuntu 14.04

LXC spremnici (Linux spremnici) su značajka operacijskog sustava u Linuxu koja se može koristiti za pokretanje više izoliranih Linux sustava na jednom hostu. Thes

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više