Kynning
Forkröfur
Dreifing
Settu upp Alpine Linux 3.9.0 á netþjónunum
Stilling miðlara eftir uppsetningu
Settu upp Docker á netþjónunum þínum
Frumstilltu Docker-sveim með einum stjórnandahnút og einum vinnuhnút
Settu upp Portainer með SSL til að stjórna Docker kvikinu þínu
Kynning
Þessi handbók mun sýna þér hvernig á að búa til og stilla Docker kvik með því að nota marga Alpine Linux 3.9.0 netþjóna og Portainer. Vinsamlegast hafðu í huga að Vultr býður upp á One-Click Docker App sem styður nú bæði CentOS 7 x64 og Ubuntu 16.04 x64.
Forkröfur
Til að byrja þarftu að minnsta kosti tvo VC2 netþjóna sem keyra Alpine Linux 3.9.0. Innan Docker-sveimsins þíns mun einn af þessum netþjónum virka sem manager node
- tengi við ytri netkerfi og framselja störf til starfsmannahnúta. Hinn þjónninn mun þá virka sem worker node
- framkvæma störf sem honum eru úthlutað af stjórnandahnútnum.
Athugaðu að þú getur ræst fleiri en tvo netþjóna ef forritið þitt krefst offramboðs og/eða meiri tölvuorku, og skrefin í þessari handbók munu enn gilda.
Dreifing
Farðu á Vultr miðlara dreifingarviðmótið .
Gakktu úr skugga um að Vultr Cloud (VC2)
flipinn sé valinn efst á síðunni.
Þú getur valið hvaða staðsetningu sem er úr Server Location
hlutanum, þó verða allir netþjónar að vera á sama stað , annars verður ekki hægt að senda Docker-sveim til þeirra.
Veldu ISO Library
flipann á Server Type
hlutanum og veldu Alpine Linux 3.9.0 x86_64
myndina.
Veldu viðeigandi valkost úr Server Size
hlutanum. Þessi handbók mun nota 25 GB SSD miðlarastærðina, en það gæti verið ófullnægjandi til að uppfylla tilföngsþörf forritsins þíns. Þó að Vultr geri það auðvelt að uppfæra stærð netþjóns eftir að hann hefur þegar verið opnaður, ættir þú samt að íhuga vandlega hvaða netþjónastærð forritið þitt þarf til að skila sem bestum árangri.
Í Additional Features
hlutanum verður þú að velja Enable Private Networking
valkostinn. Þó að aðrir valkostir séu ekki nauðsynlegir til að fylgja þessari handbók, ættir þú að íhuga hvort hver og einn sé skynsamlegur í samhengi við umsókn þína.
Ef þú hefur áður virkjað Multiple Private Networks
valkostinn á reikningnum þínum þarftu annað hvort að velja núverandi eða búa til nýtt einkanet fyrir netþjóna þína. Ef þú hefur ekki virkjað það, þá geturðu hunsað þennan hluta. Fyrir upplýsingar um handstilla einkanetkerfi, sjá þessa handbók .
Slepptu Firewall Group
kaflanum í bili. Aðeins þjónninn sem virkar sem stjórnandahnútur í Docker kvikinu mun þurfa óvarinn tengi og þetta ætti að vera stillt eftir uppsetningu netþjónsins.
Neðst á síðunni verður þú að slá inn a Server Qty
af að minnsta kosti tveimur. Eins og áður hefur komið fram gætirðu þurft fleiri en tvo netþjóna, en tveir eru nóg til að fylgja þessari handbók.
Að lokum, í Server Hostname & Label
hlutanum, sláðu inn þýðingarmikil og eftirminnileg hýsingarnöfn og merki fyrir hvern netþjón. Að því er varðar þessa handbók verða hýsingarnafn og merki fyrsta netþjónsins docker-manager
og Docker Manager
, í sömu röð- og docker-worker
og Docker Worker
fyrir þann seinni, í sömu röð.
Eftir að hafa tvöfalt athugað allar stillingar þínar geturðu smellt á Deploy Now
hnappinn neðst á síðunni til að ræsa netþjóna þína.
Settu upp Alpine Linux 3.9.0 á netþjónunum
Vegna þess að þú valdir stýrikerfi úr ISO bókasafni Vultr þarftu að setja upp og stilla Alpine Linux 3.9.0 handvirkt á hverjum netþjóni.
Eftir að hafa gefið Vultr eina mínútu eða tvær til að úthluta netþjónunum þínum, smelltu á þrífalda punktatáknið more options
fyrir Docker Manager
netþjóninn á netþjónsstjórnunarviðmótinu og veldu síðan View Console
valkostinn.
Þú ættir að vera vísað á leikjatölvu með innskráningarkvaðningu. Ef ekki, vinsamlegast bíddu í eina mínútu þar til Vultr ljúki við að dreifa netþjónunum þínum.
Sláðu inn root
sem notandanafn við þá innskráningarkvaðningu. Lifandi útgáfan af Alpine Linux 3.9.0 (sem er það sem netþjónarnir þínir eru í gangi) krefst þess ekki að ofurnotandinn slær inn lykilorð þegar hann skráir sig inn.
Þegar þú hefur skráð þig inn á rótarreikninginn muntu sjá velkomin skilaboð fylgt eftir af skelkvaðningu sem lítur út eins og eftirfarandi:
localhost:~#
Til að ræsa Alpine Linux uppsetningarforritið skaltu slá inn eftirfarandi skipun:
# setup-alpine
Veldu fyrst viðeigandi lyklaborðsuppsetningu. Þessi handbók mun nota us
útlitið og afbrigðið.
Þegar hýsingarnafnið er stillt skaltu velja sama hýsilnafnið og þú stillir fyrir þennan netþjón við uppsetningu. Ef þú hefur fylgst nákvæmlega með þessari handbók ætti hýsingarheitið að vera docker-manager
.
Tvö netviðmót ættu að vera tiltæk: eth0
og eth1
. Ef þú sérð aðeins eth0
þýðir það að þú hafir ekki stillt einkanet netþjónanna þinna rétt. Frumstilla eth0
með dhcp
, og frumstilla eth1
með einka IP tölu, netmaska og gátt sem þessum þjóni var úthlutað við uppsetningu. Þú getur nálgast þessar upplýsingar frá stillingaviðmóti netþjónsins þíns. Þegar beðið er um það skaltu ekki framkvæma handvirka netstillingu.
Sláðu inn nýtt lykilorð fyrir rótarreikninginn og veldu síðan tímabelti sem hentar staðsetningunni sem þú valdir til að dreifa þessum netþjónum á.
Ef þú ætlar að nota HTTP/FTP proxy, sláðu inn slóð þess, annars skaltu ekki stilla proxy URL.
Veldu NTP viðskiptavin til að stjórna samstillingu kerfisklukku. Þessi handbók mun nota busybox
.
Þegar þú ert beðinn um að nota pakkageymsluspegil skaltu annað hvort velja einn sérstaklega með því að slá inn númerið; greina sjálfkrafa og velja hraðasta með því að slá inn f
; eða breyttu stillingarskrá geymslunnar handvirkt með því að slá inn e
, sem ekki er mælt með nema þú þekkir Alpine Linux. Þessi handbók mun nota fyrsta spegilinn.
Ef þú ætlar að nota SSH til að fá aðgang að netþjónunum þínum eða til að hýsa SSH skráarkerfi skaltu velja SSH netþjón til að nota. Þessi handbók mun nota openssh
.
Þegar þú ert beðinn um að nota disk skaltu velja disk vda
sem sys
tegund.
Alpine Linux 3.9.0 ætti nú að vera sett upp á þjóninum þínum. Endurtaktu þetta ferli fyrir alla aðra netþjóna sem þú notaðir áðan og tryggðu að þú setjir rétt gildi fyrir hýsilheiti og eth1
netviðmót.
Stilling miðlara eftir uppsetningu
Á þessum tímapunkti eru netþjónarnir þínir enn að keyra lifandi ISO útgáfu af Alpine Linux 3.9.0. Til að ræsa úr SSD uppsetningunni skaltu fara í stillingarviðmót netþjónsins þíns, fletta að Custom ISO
hliðarvalmyndinni og smella á Remove ISO
hnappinn. Þetta ætti að endurræsa þjóninn. Ef það gerir það ekki skaltu endurræsa handvirkt.
Þegar þjónninn hefur lokið við að endurræsa skaltu fara aftur á vefborðið fyrir þjóninn Docker Manager
.
Skráðu þig inn á rótarreikninginn með því að nota lykilorðið sem þú stilltir áðan meðan á uppsetningarferlinu stóð.
Virkjaðu samfélagspakkageymsluna með því að aflýsa þriðju línunni um að /etc/apk/repositories
nota vi
. Þú getur virkjað kant- og prófunargeymslurnar á svipaðan hátt, en þær þurfa ekki að fylgja þessari handbók.
Samstilltu staðbundna pakkavísitölu þjónsins við ytri geymsluna sem þú valdir áðan með því að slá inn eftirfarandi skel skipun:
# apk update
Uppfærðu síðan gamaldags pakka:
# apk upgrade
Eins og áður, endurtaktu þetta stillingarferli fyrir hvern netþjón sem þú notaðir áður.
Settu upp Docker á netþjónunum þínum
Áður en þú setur upp Docker pakkann sjálfan gætirðu viljað búa til sérstakan docker
notanda. Þú getur gert þetta með því að nota eftirfarandi skipun:
# adduser docker
Athugið: Þessi nýi notandi og allir notendur sem bætt er við nýja docker
hópinn munu hafa rótarréttindi þegar Docker pakkinn hefur verið settur upp. Sjáðu eftirfarandi mál úr Moby Github geymslunni:
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.
Ef þú vilt gefa docker
notandanum sudo leyfi skaltu fyrst setja upp sudo
pakkann:
# apk add sudo
Búðu svo til sudo
hóp:
# addgroup sudo
Að lokum skaltu bæta docker
notandanum við sudo
hópinn:
# adduser docker sudo
Nú geturðu fylgst með skrefi 4 í þessari handbók til að klára að stilla sudo.
Á þessum tímapunkti ertu tilbúinn til að setja upp Docker pakkann. Athugaðu að það er ekki stranglega nauðsynlegt að hafa sérstakan, sudo-hæfan docker
notanda til að setja upp og stilla Docker, en þessi handbók fylgir þeirri venju.
Settu upp Docker pakkann með eftirfarandi skipun:
# apk add docker
Virkjaðu síðan Docker init handritið:
# rc-update add docker
Að lokum, byrjaðu Docker púkann:
# rc-service docker start
Þú getur staðfest að Docker sé í gangi með þessari skipun:
# docker info
Eins og síðast, endurtaktu þetta Docker uppsetningarferli fyrir hvern netþjón sem þú notaðir í upphafi.
Frumstilltu Docker-sveim með einum stjórnandahnút og einum vinnuhnút
Þegar búið er að takast á við alla þessa uppsetningu ertu loksins tilbúinn til að búa til Docker kvik.
Búðu til kvik og bættu við stjórnandahnút
Farðu aftur á vefborðið á Docker Manager
netþjóninum þínum. Þú munt stilla þennan netþjón sem stjórnandahnút í kvikinu þínu. Ef þú valdir að búa til docker
notandann fyrr skaltu skrá þig inn með því að nota þann reikning frekar en ofurnotandann.
Sláðu inn eftirfarandi skipun, en skiptu 192.0.2.1
út fyrir persónulegu, (ekki almenna), IP tölu Docker Manager
netþjónsins þíns var úthlutað:
$ docker swarm init --advertise-addr 192.0.2.1
Docker mun birta skipun sem þú getur framkvæmt á öðrum netþjónum á einkanetinu til að bæta þeim sem vinnuhnútum við þennan nýja kvik. Vistaðu þessa skipun.
Bættu við vinnuhnút
Farðu nú að vefborðinu á Docker Worker
netþjóninum þínum og skráðu þig inn með docker
notandanum ef þú bjóst það til.
Til að bæta þessum þjóni sem vinnuhnút við kvik sem þú varst að búa til skaltu framkvæma skipunina sem þú vistaðir úr úttakinu á kviksköpunarskipuninni. Það mun líta svipað út og eftirfarandi:
$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377
Docker mun gefa út hvort hnúturinn hafi getað gengið í kvik. Ef þú lendir í vandræðum með að bæta vinnuhnútum við kvik, athugaðu uppsetningu einkanets þíns og skoðaðu þessa handbók til að finna bilanaleit.
Ef þú settir upp fleiri en tvo netþjóna í upphafi geturðu bætt afganginum sem verkamannahnútum við kvikinn þinn með því að nota skipunina hér að ofan, aukið magn tilföngs sem er tiltækt fyrir forritið þitt. Að öðrum kosti geturðu bætt við fleiri stjórnendahnútum, en það er utan gildissviðs þessarar handbókar.
Settu upp Portainer með SSL til að stjórna Docker kvikinu þínu
Á þessum tímapunkti er Docker kvikurinn þinn tilbúinn til notkunar. Þú getur hins vegar valfrjálst ræst Portainer stafla á stjórnandahnútnum í kvikinu þínu. Portainer býður upp á þægilegt vefviðmót til að stjórna kvikinu þínu og hnútunum í honum.
Nú er kominn tími til að búa til eldveggshóp fyrir kviknaðinn þinn. Nema forritið þitt krefjist þess sérstaklega, afhjúpaðu aðeins tengi á stjórnandahnútunum þínum . Að afhjúpa höfn á hnútunum þínum án vandlegrar íhugunar getur leitt til veikleika.
Farðu í eldveggsstjórnunarviðmótið og búðu til nýjan eldveggshóp. Umsóknin þín ætti að segja til um hvaða höfn á að afhjúpa, en þú verður að minnsta kosti að afhjúpa höfn 9000
fyrir Portainer. Notaðu þennan eldveggshóp á Docker Manager
þjóninn.
Þó að það sé ekki krafist, er eindregið mælt með því að tryggja Portainer með SSL. Vegna þessa handbókar, muntu aðeins nota sjálfundirritað OpenSSL vottorð, en þú ættir að íhuga að nota Let's Encrypt í framleiðslu.
Farðu á vefborðið á Docker Manager
þjóninum, skráðu þig inn með docker
notandanum og notaðu eftirfarandi skipanir til að búa til sjálfundirritað OpenSSL vottorð:
$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650
Búðu til nýja skrá, ~/portainer-agent-stack.yml
, með eftirfarandi innihaldi:
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:
Eftir að hafa breytt þessari Docker stafla stillingarskrá til að vera í samræmi við kröfur þínar geturðu sett hana í notkun:
$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer
Til að ganga úr skugga um að Portainer sé að virka skaltu framkvæma eftirfarandi skipun eftir að hafa gefið Docker mínútu eða tvær til að dreifa staflanum:
$ docker ps
Þú munt sjá tvo ílát með myndunum portainer/portainer:latest
og portainer/agent:latest
, sem staðfestir að Portainer hafi byrjað rétt.
Þú getur nú stillt og stjórnað Docker kvikinu þínu með því að heimsækja opinbera IP tölu Docker Manager
netþjónsins þíns á höfn 9000
með HTTPS.