Ustvarite Docker Swarm na Alpine Linux 3.9.0

Uvod

Ta priročnik vam bo pokazal, kako ustvariti in konfigurirati Dockerjev roj z uporabo več strežnikov Alpine Linux 3.9.0 in Portainerja. Upoštevajte, da Vultr ponuja aplikacijo Docker z enim klikom, ki trenutno podpira CentOS 7 x64 in Ubuntu 16.04 x64.

Predpogoji

Za začetek boste potrebovali vsaj dva strežnika VC2 z nameščenim Alpine Linux 3.9.0. V vašem Dockerjevem roju bo eden od teh strežnikov deloval kot manager node- povezovanje z zunanjimi omrežji in delegiranje opravil na delovna vozlišča. Drugi strežnik bo nato deloval kot worker nodeizvajalec opravil, ki mu jih je delegiralo upravljalno vozlišče.

Upoštevajte, da lahko zaženete več kot dva strežnika, če vaša aplikacija zahteva redundanco in/ali večjo računalniško moč, koraki v tem priročniku pa bodo še vedno veljali.

Uvajanje

Obiščite vmesnik za namestitev strežnika Vultr .

Prepričajte se, da je Vultr Cloud (VC2)zavihek izbran na vrhu strani.

Iz Server Locationrazdelka lahko izberete katero koli lokacijo , vendar morajo biti vsi strežniki na isti lokaciji , sicer nanje ne bo mogoče namestiti Dockerjevega roja.

Izberite ISO Libraryzavihek Server Typerazdelka in izberite Alpine Linux 3.9.0 x86_64sliko.

V Server Sizerazdelku izberite ustrezno možnost . Ta priročnik bo uporabljal velikost strežnika SSD 25 GB, vendar to morda ne bo zadostovalo za izpolnjevanje zahtev po virih vaše aplikacije. Medtem ko Vultr olajša nadgradnjo velikosti strežnika, potem ko je bil že zagnan, morate še vedno skrbno pretehtati, katero velikost strežnika potrebuje vaša aplikacija za optimalno delovanje.

V Additional Featuresrazdelku morate izbrati Enable Private Networkingmožnost. Čeprav druge možnosti niso potrebne za upoštevanje tega priročnika, morate razmisliti, ali je vsaka smiselna v kontekstu vaše aplikacije.

Če ste to možnost že omogočili v Multiple Private Networkssvojem računu, boste morali izbrati obstoječe ali ustvariti novo zasebno omrežje za svoje strežnike. Če ga niste omogočili, lahko ta razdelek prezrete. Za informacije o ročni konfiguraciji zasebnih omrežij glejte ta priročnik .

Zaenkrat preskočite Firewall Grouprazdelek. Samo strežnik, ki deluje kot upravljalsko vozlišče v Dockerjevem roju, bo potreboval izpostavljena vrata, ki jih je treba konfigurirati po namestitvi strežnika.

Na samem dnu strani morate vnesti Server Qtynajmanj dve. Kot smo že omenili, boste morda potrebovali več kot dva strežnika, vendar sta dva dovolj, da sledite tem navodilom.

Na koncu v Server Hostname & Labelrazdelku vnesite smiselna in nepozabna imena gostiteljev in oznake za vsak strežnik. Za namene tega priročnika bosta ime gostitelja in oznaka prvega strežnika docker-managerin Docker Manager, oziroma docker-workerin Docker Workerza drugega.

Ko dvakrat preverite vse svoje konfiguracije, lahko kliknete Deploy Nowgumb na dnu strani, da zaženete svoje strežnike.

Na strežnike namestite Alpine Linux 3.9.0

Ker ste izbrali operacijski sistem iz Vultrove knjižnice ISO, boste morali na vsakem strežniku ročno namestiti in konfigurirati Alpine Linux 3.9.0.

Ko daste Vultru minuto ali dve, da dodeli strežnike, kliknite more optionsikono trojne pike za Docker Managerstrežnik na vmesniku za upravljanje strežnika in nato izberite View Consolemožnost.

Morali bi biti preusmerjeni na konzolo s pozivom za prijavo. Če ne, počakajte še eno minuto, da Vultr dokonča namestitev vaših strežnikov.

Ob tem pozivu za prijavo vnesite rootuporabniško ime. Različica Alpine Linux 3.9.0 v živo (to je tisto, kar trenutno izvajajo vaši strežniki) ne zahteva, da naduporabnik ob prijavi vnese geslo.

Ko se uspešno prijavite v korenski račun, boste videli pozdravno sporočilo, ki mu sledi ukaz lupine, ki je videti takole:

localhost:~# 

Če želite zagnati namestitveni program Alpine Linux, vnesite naslednji ukaz:

# setup-alpine

Najprej izberite ustrezno postavitev tipkovnice. Ta vodnik bo uporabljal uspostavitev in različico.

Ko nastavljate ime gostitelja, izberite isto ime gostitelja, ki ste ga nastavili za ta strežnik med uvajanjem. Če ste natančno sledili tem navodilom, bi moralo biti ime gostitelja docker-manager.

Na voljo morata biti dva omrežna vmesnika: eth0in eth1. Če vidite samo eth0, to pomeni, da zasebnega omrežja svojih strežnikov niste pravilno konfigurirali. Inicializirajte eth0z uporabo dhcpin inicializirajte eth1z zasebnim naslovom IP, omrežno masko in prehodom, ki je bil temu strežniku dodeljen med uvajanjem. Do teh podrobnosti lahko dostopate iz vmesnika za nastavitve vašega strežnika. Ko ste pozvani, ne izvajajte ročne konfiguracije omrežja.

Vnesite novo geslo za korenski račun in nato izberite časovni pas, primeren za lokacijo, na katero ste izbrali namestitev teh strežnikov.

Če nameravate uporabiti proxy HTTP/FTP, vnesite njegov URL, sicer ne nastavite URL-ja proxyja.

Izberite odjemalca NTP za upravljanje sinhronizacije sistemske ure. Ta priročnik bo uporabljal busybox.

Ko ste pozvani, da uporabite zrcalo skladišča paketa, ga izberite izrecno tako, da vnesete njegovo številko; samodejno zazna in izbere najhitrejšega z vnosom f; ali ročno uredite konfiguracijsko datoteko skladišča z vnosom e, kar ni priporočljivo, razen če ste seznanjeni z Alpine Linux. Ta vodnik bo uporabil prvo ogledalo.

Če nameravate uporabljati SSH za dostop do svojih strežnikov ali gostovanje datotečnega sistema, ki temelji na SSH, izberite strežnik SSH, ki ga želite uporabiti. Ta priročnik bo uporabljal openssh.

Ko ste pozvani, da uporabite disk, izberite disk vdakot sysvrsto.

Alpine Linux 3.9.0 bi moral biti zdaj nameščen na vašem strežniku. Ta postopek ponovite za vse druge strežnike, ki ste jih namestili prej, in zagotovite, da boste nadomestili pravilne vrednosti za ime gostitelja in eth1omrežni vmesnik.

Konfiguracija strežnika po namestitvi

Na tej točki vaši strežniki še vedno izvajajo živo različico ISO Alpine Linux 3.9.0. Če želite zagnati z namestitve SSD, obiščite nastavitveni vmesnik svojega strežnika, se pomaknite do Custom ISOvnosa v stranskem meniju in kliknite Remove ISOgumb. To bi moralo znova zagnati strežnik. Če ne, potem ročno znova zaženite.

Ko je strežnik končan s ponovnim zagonom, se pomaknite nazaj na spletno konzolo za strežnik Docker Manager.

Prijavite se v korenski račun z geslom, ki ste ga nastavili prej med postopkom namestitve.

Omogočite repozitorij skupnih paketov tako, da odstranite komentarje iz tretje vrstice /etc/apk/repositoriesuporabe vi. Na podoben način lahko omogočite repozitorije roba in testiranja, vendar jim ni treba upoštevati tega priročnika.

Sinhronizirajte strežnikov lokalni indeks paketa z oddaljenim skladiščem, ki ste ga izbrali prej, tako da vnesete naslednji ukaz lupine:

# apk update

Nato nadgradite zastarele pakete:

# apk upgrade

Kot prej, ponovite ta postopek konfiguracije za vsak strežnik, ki ste ga namestili prej.

Namestite Docker na svoje strežnike

Preden namestite sam paket Docker, boste morda želeli ustvariti ločenega dockeruporabnika. To lahko storite z naslednjim ukazom:

# adduser docker

Opomba: Ta novi uporabnik in vsi uporabniki, dodani v novo dockerskupino, bodo imeli korenske pravice, ko bo paket Docker nameščen. Oglejte si naslednjo težavo iz skladišča 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.

Če želite uporabniku dati dovoljenje za sudo docker, najprej namestite sudopaket:

# apk add sudo

Nato ustvarite sudoskupino:

# addgroup sudo

Na koncu dodajte dockeruporabnika v sudoskupino:

# adduser docker sudo

Zdaj lahko sledite 4. koraku tega priročnika, da dokončate konfiguracijo sudo.

Na tej točki ste pripravljeni na namestitev paketa Docker. Upoštevajte, da dockerza namestitev in konfiguracijo Dockerja ni nujno, da imate ločenega uporabnika, ki ima sposobnost sudo , vendar ta priročnik sledi tej konvenciji.

Namestite paket Docker z naslednjim ukazom:

# apk add docker

Nato omogočite skript Docker init:

# rc-update add docker

Končno zaženite demon Docker:

# rc-service docker start

S tem ukazom lahko preverite, ali se Docker izvaja:

# docker info

Kot zadnjič ponovite ta postopek namestitve Dockerja za vsak strežnik, ki ste ga namestili na začetku.

Inicializirajte Dockerjev roj z enim upravljalskim vozliščem in enim delovnim vozliščem

Ko so vse te nastavitve obravnavane, ste končno pripravljeni ustvariti Docker roj.

Ustvarite roj in dodajte vozlišče upravitelja

Pomaknite se nazaj na spletno konzolo vašega Docker Managerstrežnika. Ta strežnik boste konfigurirali kot upravljalsko vozlišče v vašem roju. Če ste se odločili ustvariti dockeruporabnika prej, se prijavite s tem računom in ne s superuporabnikom.

Vnesite naslednji ukaz, vendar ga zamenjajte 192.0.2.1z zasebnim (ne javnim), IP naslovom, ki Docker Managerje bil dodeljen vašemu strežniku:

$ docker swarm init --advertise-addr 192.0.2.1

Docker bo prikazal ukaz, ki ga lahko izvedete na drugih strežnikih v zasebnem omrežju, da jih dodate kot delovna vozlišča v ta novi roj. Shranite ta ukaz.

Dodajte delovno vozlišče

Zdaj se pomaknite do spletne konzole svojega Docker Workerstrežnika in se prijavite z dockeruporabnikom, če ste ga ustvarili.

Če želite ta strežnik dodati kot delovno vozlišče roju, ki ste ga pravkar ustvarili, izvedite ukaz, ki ste ga shranili iz izhoda ukaza za ustvarjanje roja. Videti bo podobno kot:

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

Docker bo izpisal, ali se je vozlišče uspelo pridružiti roju. Če naletite na težave pri dodajanju delovnih vozlišč v roj, še enkrat preverite konfiguracijo zasebnega omrežja in si oglejte ta priročnik za odpravljanje težav.

Če ste na začetku namestili več kot dva strežnika, lahko preostale dodate kot delovna vozlišča svojemu roju z zgornjim ukazom in tako povečate količino sredstev, ki so na voljo vaši aplikaciji. Druga možnost je, da dodate dodatna vozlišča upravitelja, vendar to presega obseg tega priročnika.

Namestite Portainer s SSL za upravljanje vašega Docker roja

Na tej točki je vaš Docker roj pripravljen za uporabo. Lahko pa po želji zaženete sklad Portainer na upravljalnem vozlišču v vašem roju. Portainer ponuja priročen spletni vmesnik za upravljanje vašega roja in vozlišč v njem.

Zdaj je čas, da ustvarite skupino požarnega zidu za vaš roj. Razen če vaša aplikacija to izrecno ne zahteva, razkrijte samo vrata na vozliščih upravitelja . Razkrivanje vrat na vaših delovnih vozliščih brez skrbnega premisleka lahko povzroči ranljivosti.

Pomaknite se do vmesnika za upravljanje požarnega zidu in ustvarite novo skupino požarnih zidov. Vaša aplikacija bi morala narekovati, katera vrata naj izpostavite, vendar morate vsaj razkriti vrata 9000za Portainer. Uporabi to skupino požarnega zidu za Docker Managerstrežnik.

Čeprav to ni potrebno, je zavarovanje Porttainerja s SSL zelo priporočljivo. Zaradi tega priročnika boste uporabljali samo samopodpisano potrdilo OpenSSL, vendar bi morali razmisliti o uporabi Let's Encrypt v produkciji.

Pomaknite se do spletne konzole Docker Managerstrežnika, se prijavite z dockeruporabnikom in uporabite naslednje ukaze, da ustvarite samopodpisano potrdilo OpenSSL:

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

Ustvarite novo datoteko ~/portainer-agent-stack.ymlz naslednjo vsebino:

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:

Ko spremenite to konfiguracijsko datoteko sklada Docker, da bo ustrezala vašim zahtevam, jo ​​lahko razmestite:

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

Če želite preveriti, ali Portainer deluje, izvedite naslednji ukaz, potem ko ste Dockerju dali minuto ali dve, da razmesti sklad:

$ docker ps

Videli boste dva vsebnika s slikama portainer/portainer:latestin portainer/agent:latest, s čimer boste preverili, ali se je Portainer pravilno zagnal.

Zdaj lahko konfigurirate in upravljate svoj Docker roj tako, da obiščete javni naslov IP vašega Docker Managerstrežnika na vratih 9000s protokolom HTTPS.


Tukaj je opisano, kako preveriti vsebnike Hyper-V v sistemu Windows 10 Insider

Tukaj je opisano, kako preveriti vsebnike Hyper-V v sistemu Windows 10 Insider

Microsoft je v novi objavi v spletnem dnevniku pojasnil, kako lahko Windows Insiders testirajo vsebnike Hyper-V v sistemu Windows 10, novi virtualizacijski rešitvi, ki omogoča izvajanje aplikacij, ne da bi to vplivalo na preostali del vašega operacijskega sistema.

Kako namestiti Harbor na CentOS 7

Kako namestiti Harbor na CentOS 7

Harbor je odprtokodni registrski strežnik poslovnega razreda, ki shranjuje in distribuira slike Docker. Harbor razširi odprtokodno Docker Distribution b

Namestite Rancher OS prek iPXE

Namestite Rancher OS prek iPXE

Rancher OS je zelo lahka distribucija Linuxa, zgrajena okoli Dockerja. Sam OS tehta približno 20 MB. Ta vadnica vas bo pripravila na začetek

V CoreOS nastavite svoj lasten register Docker

V CoreOS nastavite svoj lasten register Docker

Vsi poznamo in imamo radi Docker, platformo za ustvarjanje, upravljanje in distribucijo aplikacijskih vsebnikov na več računalnikih. Docker Inc. ponuja storitev t

Namestitev docker-compose na CoreOS

Namestitev docker-compose na CoreOS

Ta članek pojasnjuje, kako namestiti docker-compose v CoreOS. V CoreOS-u je mapa /usr/ nespremenljiva, zato standardna pot /usr/local/bin ni na voljo za

Namesti Rancher na CentOS 7

Namesti Rancher na CentOS 7

Uporaba drugega sistema? Uvod Rancher je odprtokodna platforma za vodenje kontejnerjev in izgradnjo zasebne storitve kontejnerja. Rancher je osnova

Namestite Docker CE na Ubuntu 18.04

Namestite Docker CE na Ubuntu 18.04

Uvod Docker je aplikacija, ki nam omogoča uvajanje programov, ki se izvajajo kot vsebniki. Napisana je bila v priljubljenem programskem jeziku Go

Ustvarite Docker Swarm na Alpine Linux 3.9.0

Ustvarite Docker Swarm na Alpine Linux 3.9.0

Uvod Ta priročnik vam bo pokazal, kako ustvariti in konfigurirati Docker roj z uporabo več strežnikov Alpine Linux 3.9.0 in Portainerja. Prosimo, da se zavedate, da

Namestite aplikacijo PHP z uporabo Docker-compose

Namestite aplikacijo PHP z uporabo Docker-compose

PHP aplikacije običajno sestavljajo spletni strežnik, sistem relacijske baze podatkov in sam tolmač jezika. V tej vadnici bomo vzvod

Uravnoteženost obremenitve z Dockerjem

Uravnoteženost obremenitve z Dockerjem

Ko zaženete spletno aplikacijo, običajno želite kar najbolje izkoristiti svoje vire, ne da bi morali svojo programsko opremo pretvoriti v uporabo večnitnega o

Namestite aplikacijo Node.js z uporabo Dockerja

Namestite aplikacijo Node.js z uporabo Dockerja

Ta članek vam bo pokazal, kako namestiti aplikacijo Node v vsebniku Docker. Opomba: Ta vadnica predpostavlja, da imate nameščen in prebran Docker

Namestitev Docker CE na CentOS 7

Namestitev Docker CE na CentOS 7

Tehnologija vsebnika Docker vam omogoča zagon aplikacij v določenem in izoliranem okolju. Docker Community Edition (CE) je novo ime za fre

Namestite Kubernetes s Kubeadmom na CentOS 7

Namestite Kubernetes s Kubeadmom na CentOS 7

Pregled Namen tega članka je pomagati, da gručo Kubernetes zaženete in zaženete s kubeadmom. Ta vodnik bo namestil dva strežnika na

Namestitev Dockerja na CentOS 7

Namestitev Dockerja na CentOS 7

Uporaba drugega sistema? Docker je aplikacija, ki omogoča namestitev programske opreme znotraj virtualnih vsebnikov. Napisano je v programu Go

Namestitev Docker CE v Debian 9

Namestitev Docker CE v Debian 9

Uporaba drugega sistema? Uvod Docker je aplikacija, ki omogoča namestitev programske opreme znotraj virtualnih vsebnikov. Zapisano je bilo v G

Začnite uporabljati SQL Server 2017 (MS-SQL) na CentOS 7 z Dockerjem

Začnite uporabljati SQL Server 2017 (MS-SQL) na CentOS 7 z Dockerjem

Predpogoji Docker engine 1.8+. Najmanj 4 GB prostora na disku. Najmanj 4 GB RAM-a. 1. korak. Namestite Docker Za namestitev SQL-Serverja je potrebno Docker

Sticky Session with Docker Swarm (CE) na Debianu 9

Sticky Session with Docker Swarm (CE) na Debianu 9

Uporaba drugega sistema? Uvod Docker Swarm spremeni vaše posamezne strežnike v gručo računalnikov; olajšanje skaliranja, visoka razpoložljivost an

Dve Dockerjevi grafični orodji za upravljanje: DockerUI in ladjedelnica

Dve Dockerjevi grafični orodji za upravljanje: DockerUI in ladjedelnica

S pomočjo aplikacije Vultr Docker lahko preprosto namestite Docker na vaš primerek strežnika Vultr. Medtem lahko olajšate nalogo upravljanja Dockerja

Namesti Rancher Server na RancherOS

Namesti Rancher Server na RancherOS

Pregled RancherOS je neverjetno lahek operacijski sistem (le približno 60 MB), ki poganja sistemski demon Docker kot PID 0 za izvajanje sistemskih storitev

Kako začeti uporabljati Kubernetes na CentOS 7

Kako začeti uporabljati Kubernetes na CentOS 7

Kubernetes je odprtokodna platforma, ki jo je razvil Google za upravljanje kontejnerskih aplikacij v gruči strežnikov. Gradi na desetletju in

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več