Prezantimi
Parakushtet
Vendosja
Instaloni Alpine Linux 3.9.0 në serverë
Konfigurimi i serverit pas instalimit
Instaloni Docker në serverët tuaj
Inicializoni një tufë Docker me një nyje menaxheri dhe një nyje punëtore
Vendosni Portainer me SSL për të menaxhuar tufën tuaj Docker
Prezantimi
Ky udhëzues do t'ju tregojë se si të krijoni dhe konfiguroni një tufë Docker duke përdorur shumë serverë Alpine Linux 3.9.0 dhe Portainer. Ju lutemi, kini parasysh se Vultr ofron një Aplikacion Docker me Një Klik që aktualisht mbështet CentOS 7 x64 dhe Ubuntu 16.04 x64.
Parakushtet
Për të filluar, do t'ju duhen të paktën dy serverë VC2 që përdorin Alpine Linux 3.9.0. Brenda grupit tuaj Docker, një nga këta serverë do të veprojë si një manager node
ndërfaqe me rrjetet e jashtme dhe delegimin e punëve te nyjet e punëtorëve. Serveri tjetër më pas do të veprojë si një worker node
- punë ekzekutuese e deleguar atij nga nyja e menaxherit.
Vini re se mund të hapni më shumë se dy serverë nëse aplikacioni juaj kërkon tepricë dhe/ose më shumë fuqi kompjuterike dhe hapat e dhënë në këtë udhëzues do të vazhdojnë të zbatohen.
Vendosja
Vizitoni ndërfaqen e vendosjes së serverit Vultr .
Sigurohuni që Vultr Cloud (VC2)
skeda është zgjedhur në krye të faqes.
Ju mund të zgjidhni çdo vendndodhje nga Server Location
seksioni, megjithatë të gjithë serverët duhet të jenë në të njëjtin vend , përndryshe nuk do të jetë e mundur të vendoset një tufë Docker tek ata.
Zgjidhni ISO Library
skedën e Server Type
seksionit dhe zgjidhni Alpine Linux 3.9.0 x86_64
imazhin.
Zgjidhni një opsion të përshtatshëm nga Server Size
seksioni. Ky udhëzues do të përdorë madhësinë e serverit SSD 25 GB, por kjo mund të jetë e pamjaftueshme për të përmbushur kërkesat e burimit të aplikacionit tuaj. Ndërsa Vultr e bën të lehtë përmirësimin e madhësisë së një serveri pasi të jetë nisur tashmë, ju duhet të konsideroni me kujdes se cilën madhësi serveri duhet që aplikacioni juaj të performojë në mënyrë optimale.
Në Additional Features
seksion, duhet të zgjidhni Enable Private Networking
opsionin. Ndërsa opsionet e tjera nuk kërkohen për të ndjekur këtë udhëzues, ju duhet të konsideroni nëse secila prej tyre ka apo jo kuptim në kontekstin e aplikimit tuaj.
Nëse e keni aktivizuar më parë Multiple Private Networks
opsionin në llogarinë tuaj, atëherë do t'ju duhet të zgjidhni një rrjet ekzistues ose të krijoni një rrjet të ri privat për serverët tuaj. Nëse nuk e keni aktivizuar, atëherë mund ta shpërfillni këtë seksion. Për informacion mbi konfigurimin manual të rrjeteve private, shihni këtë udhëzues .
Kalo Firewall Group
seksionin tani për tani. Vetëm serveri që vepron si një nyje menaxheri në tufën Docker do të ketë nevojë për porte të ekspozuara dhe kjo duhet të konfigurohet pas vendosjes së serverit.
Në fund të faqes, duhet të vendosni një Server Qty
prej të paktën dy. Siç u përmend më parë, mund t'ju duhen më shumë se dy serverë, por dy janë të mjaftueshëm për të ndjekur këtë udhëzues.
Më në fund, në Server Hostname & Label
seksion, vendosni emrat dhe etiketat e hosteve kuptimplotë dhe të paharrueshëm për secilin server. Për qëllimet e këtij udhëzuesi, emri i hostit dhe etiketa e serverit të parë do të jenë docker-manager
dhe Docker Manager
, përkatësisht- dhe docker-worker
dhe Docker Worker
për të dytin, përkatësisht.
Pasi të keni kontrolluar dy herë të gjitha konfigurimet tuaja, më pas mund të klikoni Deploy Now
butonin në fund të faqes për të nisur serverët tuaj.
Instaloni Alpine Linux 3.9.0 në serverë
Për shkak se keni zgjedhur një OS nga biblioteka ISO e Vultr, do t'ju duhet të instaloni dhe konfiguroni manualisht Alpine Linux 3.9.0 në çdo server.
Pasi t'i jepni Vultr një ose dy minuta për të ndarë serverët tuaj, klikoni more options
ikonën me pika të trefishta për Docker Manager
serverin në ndërfaqen e menaxhimit të serverit dhe më pas zgjidhni View Console
opsionin.
Ju duhet të ridrejtoheni në një tastierë me një kërkesë për hyrje. Nëse jo, ju lutemi prisni edhe një minutë që Vultr të përfundojë vendosjen e serverëve tuaj.
Në atë kërkesë të hyrjes, futni root
si emrin e përdoruesit. Versioni i drejtpërdrejtë i Alpine Linux 3.9.0 (që është ajo që serverët tuaj po funksionojnë aktualisht) nuk kërkon që superpërdoruesi të fusë një fjalëkalim kur të identifikohet.
Pasi të keni hyrë me sukses në llogarinë rrënjësore, do të shihni një mesazh mirëseardhjeje të ndjekur nga një kërkesë e guaskës që duket si më poshtë:
localhost:~#
Për të nisur instaluesin Alpine Linux, futni komandën e mëposhtme:
# setup-alpine
Së pari, zgjidhni një plan urbanistik të përshtatshëm të tastierës. Ky udhëzues do të përdorë us
paraqitjen dhe variantin.
Kur vendosni emrin e hostit, zgjidhni të njëjtin emër pritës që keni vendosur për këtë server gjatë vendosjes. Nëse e keni ndjekur saktësisht këtë udhëzues, emri i hostit duhet të jetë docker-manager
.
Duhet të jenë të disponueshme dy ndërfaqe rrjeti: eth0
dhe eth1
. Nëse shihni vetëm eth0
, kjo do të thotë se nuk e keni konfiguruar saktë rrjetin privat të serverëve tuaj. Inicializoni eth0
duke përdorur dhcp
dhe inicializoni eth1
duke përdorur adresën IP private, maskën e rrjetit dhe portën e hyrjes që këtij serveri i është caktuar gjatë vendosjes. Ju mund të përdorni këto detaje nga ndërfaqja e cilësimeve të serverit tuaj. Kur të kërkohet, mos kryeni asnjë konfigurim manual të rrjetit.
Futni një fjalëkalim të ri për llogarinë rrënjësore dhe më pas zgjidhni një zonë kohore të përshtatshme për vendndodhjen ku keni zgjedhur të vendosni këta serverë.
Nëse keni ndërmend të përdorni një përfaqësues HTTP/FTP, futni URL-në e tij, përndryshe mos vendosni një URL të përfaqësuesit.
Zgjidhni një klient NTP për të menaxhuar sinkronizimin e orës së sistemit. Ky udhëzues do të përdorë busybox
.
Kur ju kërkohet të përdorni një pasqyrë të depove të paketave, ose zgjidhni një të tillë në mënyrë eksplicite duke futur numrin e saj; zbuloni automatikisht dhe zgjidhni atë më të shpejtë duke futur f
; ose modifikoni manualisht skedarin e konfigurimit të depove duke futur e
, gjë që nuk rekomandohet nëse nuk jeni njohur me Alpine Linux. Ky udhëzues do të përdorë pasqyrën e parë.
Nëse planifikoni të përdorni SSH për të hyrë në serverët tuaj ose për të pritur një sistem skedarësh të bazuar në SSH, zgjidhni një server SSH për t'u përdorur. Ky udhëzues do të përdorë openssh
.
Kur kërkohet që një disk të përdoret, zgjidhni diskun vda
si sys
lloj.
Alpine Linux 3.9.0 tani duhet të instalohet në serverin tuaj. Përsëriteni këtë proces për të gjithë serverët e tjerë që keni vendosur më parë, duke u siguruar që të zëvendësoni vlerat e sakta për emrin e hostit dhe eth1
ndërfaqen e rrjetit.
Konfigurimi i serverit pas instalimit
Në këtë pikë, serverët tuaj janë ende duke ekzekutuar versionin e drejtpërdrejtë ISO të Alpine Linux 3.9.0. Për të nisur nga instalimi SSD, vizitoni ndërfaqen e cilësimeve të serverit tuaj, lundroni në Custom ISO
hyrjen e menysë anësore dhe klikoni Remove ISO
butonin. Kjo duhet të rindizet serverin. Nëse jo, atëherë rindizni manualisht.
Pasi serveri të ketë përfunduar rindezjen, lundroni përsëri në tastierën e uebit për serverin Docker Manager
.
Hyni në llogarinë rrënjësore duke përdorur fjalëkalimin që keni vendosur më herët gjatë procesit të instalimit.
Aktivizoni depon e paketave të komunitetit duke hequr komentin e linjës së tretë të /etc/apk/repositories
përdorimit të vi
. Ju mund të aktivizoni depot e skajeve dhe testimit në një mënyrë të ngjashme, por atyre nuk u kërkohet të ndjekin këtë udhëzues.
Sinkronizoni indeksin lokal të paketës së serverit me depon e largët që keni zgjedhur më parë duke futur komandën e mëposhtme të guaskës:
# apk update
Pastaj përditësoni paketat e vjetruara:
# apk upgrade
Si më parë, përsëritni këtë proces konfigurimi për çdo server që keni vendosur më herët.
Instaloni Docker në serverët tuaj
Përpara se të instaloni vetë paketën Docker, mund të dëshironi të krijoni një docker
përdorues të veçantë . Ju mund ta bëni këtë duke përdorur komandën e mëposhtme:
# adduser docker
Shënim: Ky përdorues i ri dhe çdo përdorues i shtuar në docker
grupin e ri do të kenë privilegje rrënjësore pasi të jetë instaluar paketa Docker. Shihni çështjen e mëposhtme nga depoja e 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.
Nëse dëshironi t'i jepni leje sudo docker
përdoruesit, së pari instaloni sudo
paketën:
# apk add sudo
Pastaj krijoni një sudo
grup:
# addgroup sudo
Së fundi, shtoni docker
përdoruesin në sudo
grup:
# adduser docker sudo
Tani mund të ndiqni hapin 4 të këtij udhëzuesi për të përfunduar konfigurimin e sudo.
Në këtë pikë, ju jeni gati të instaloni paketën Docker. Vini re se nuk është rreptësisht e nevojshme të keni një docker
përdorues të veçantë, të aftë për sudo për të instaluar dhe konfiguruar Docker, por ky udhëzues ndjek atë konventë.
Instaloni paketën Docker me komandën e mëposhtme:
# apk add docker
Pastaj aktivizoni skriptin fillestar të Docker:
# rc-update add docker
Më në fund, filloni demonin Docker:
# rc-service docker start
Ju mund të verifikoni që Docker po funksionon me këtë komandë:
# docker info
Ashtu si herën e fundit, përsëritni këtë proces të instalimit të Docker për çdo server që keni vendosur në fillim.
Inicializoni një tufë Docker me një nyje menaxheri dhe një nyje punëtore
Me gjithë këtë konfigurim të trajtuar, më në fund jeni gati për të krijuar tufën Docker.
Krijoni një tufë dhe shtoni një nyje menaxheri
Kthehuni në tastierën e internetit të Docker Manager
serverit tuaj . Ju do ta konfiguroni këtë server si një nyje menaxheriale në tufën tuaj. Nëse keni zgjedhur të krijoni docker
përdoruesin më herët, identifikohuni duke përdorur atë llogari në vend të superpërdoruesit.
Futni komandën e mëposhtme, por zëvendësojeni 192.0.2.1
me adresën IP private, (jo publike), që i Docker Manager
është caktuar serverit tuaj :
$ docker swarm init --advertise-addr 192.0.2.1
Docker do të shfaqë një komandë që mund ta ekzekutoni në serverë të tjerë në rrjetin privat për t'i shtuar ato si nyje punonjëse në këtë tufë të re. Ruaje këtë komandë.
Shto një nyje punëtore
Tani lundroni në tastierën e internetit të Docker Worker
serverit tuaj , duke u identifikuar me docker
përdoruesin nëse e keni krijuar atë.
Për të shtuar këtë server si një nyje punëtore në grupin që sapo keni krijuar, ekzekutoni komandën që keni ruajtur nga dalja e komandës së krijimit të tufës. Do të duket e ngjashme me sa vijon:
$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377
Docker do të nxjerrë nëse nyja ishte në gjendje të bashkohej me tufën. Nëse hasni probleme me shtimin e nyjeve të punëtorëve në tufë, kontrolloni dy herë konfigurimin e rrjetit tuaj privat dhe referojuni këtij udhëzuesi për zgjidhjen e problemeve.
Nëse keni vendosur më shumë se dy serverë në fillim, mund t'i shtoni pjesën tjetër si nyje punonjëse në tufën tuaj duke përdorur komandën e mësipërme, duke rritur sasinë e burimeve të disponueshme për aplikacionin tuaj. Përndryshe, ju mund të shtoni nyje shtesë të menaxherit, por kjo është përtej qëllimit të këtij udhëzuesi.
Vendosni Portainer me SSL për të menaxhuar tufën tuaj Docker
Në këtë pikë, tufa juaj Docker është gati për përdorim. Sidoqoftë, mund të hapni opsionalisht një pirg Portainer në nyjen e menaxherit në tufën tuaj. Portainer ofron një ndërfaqe të përshtatshme në internet për të menaxhuar tufën tuaj dhe nyjet në të.
Tani është koha për të krijuar një grup firewall për tufën tuaj. Nëse aplikacioni juaj nuk e kërkon në mënyrë specifike, ekspozoni vetëm portet në nyjet tuaja të menaxherit . Ekspozimi i portave në nyjet tuaja të punës pa konsideratë të kujdesshme mund të sjellë dobësi.
Navigoni te ndërfaqja e menaxhimit të murit të zjarrit dhe krijoni një grup të ri të murit të zjarrit. Aplikacioni juaj duhet të diktojë se cilat porta duhet të ekspozohen, por ju duhet, të paktën, të ekspozoni portin 9000
për Portainer. Aplikoni këtë grup firewall në Docker Manager
server.
Ndërsa nuk kërkohet, rekomandohet fuqimisht sigurimi i Portainer me SSL. Për hir të këtij udhëzuesi, do të përdorni vetëm një certifikatë OpenSSL të vetë-nënshkruar, por duhet të konsideroni përdorimin e Let's Encrypt në prodhim.
Navigoni në tastierën e internetit të Docker Manager
serverit, identifikohuni duke përdorur docker
përdoruesin dhe përdorni komandat e mëposhtme për të gjeneruar një certifikatë OpenSSL të vetë-nënshkruar:
$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650
Krijo një skedar të ri, ~/portainer-agent-stack.yml
, me përmbajtjen e mëposhtme:
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:
Pas modifikimit të këtij skedari të konfigurimit të rafte Docker për t'iu përshtatur kërkesave tuaja, mund ta vendosni atë:
$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer
Për të verifikuar që Portainer po funksionon, ekzekutoni komandën e mëposhtme pasi t'i keni dhënë Docker një ose dy minuta për të vendosur stekin:
$ docker ps
Do të shihni dy kontejnerë me imazhet portainer/portainer:latest
dhe portainer/agent:latest
, duke verifikuar që Portainer ka filluar saktë.
Tani mund të konfiguroni dhe menaxhoni tufën tuaj Docker duke vizituar adresën IP publike të Docker Manager
serverit tuaj në port 9000
duke përdorur HTTPS.