Sissejuhatus
Eeltingimused
Kasutuselevõtt
Installige serveritesse Alpine Linux 3.9.0
Installimisjärgse serveri konfiguratsioon
Installige Docker oma serveritesse
Käivitage Dockeri sülem ühe halduri ja ühe töötaja sõlmega
Kasutage oma Dockeri sülemi haldamiseks SSL-iga Portainerit
Sissejuhatus
See juhend näitab teile, kuidas luua ja konfigureerida Dockeri sülem, kasutades mitut Alpine Linux 3.9.0 serverit ja Portainerit. Pange tähele, et Vultr pakub One-Click Dockeri rakendust, mis toetab praegu nii CentOS 7 x64 kui ka Ubuntu 16.04 x64.
Eeltingimused
Alustuseks vajate vähemalt kahte VC2-serverit, millel töötab Alpine Linux 3.9.0. Teie Dockeri sülemis toimib üks neist serveritest manager node
välisvõrkudega liidesena ja tööde delegeerimisena töötajate sõlmedele. Teine server täidab seejärel worker node
haldurisõlme poolt talle delegeeritud töid.
Pange tähele, et kui teie rakendus nõuab koondamist ja/või suuremat arvutusvõimsust, saate käivitada rohkem kui kaks serverit ning selles juhendis toodud juhised kehtivad endiselt.
Kasutuselevõtt
Külastage Vultri serveri juurutusliidest .
Veenduge, et Vultr Cloud (VC2)
lehe ülaosas oleks vahekaart valitud.
Saate Server Location
jaotisest valida mis tahes asukoha , kuid kõik serverid peavad asuma samas asukohas , vastasel juhul ei ole võimalik neile Dockeri sülemi juurutada.
Valige jaotise ISO Library
vahekaart Server Type
ja valige Alpine Linux 3.9.0 x86_64
pilt.
Valige Server Size
jaotisest sobiv valik . Selles juhendis kasutatakse 25 GB SSD-serveri suurust, kuid sellest ei pruugi piisata teie rakenduse ressursinõuete täitmiseks. Kuigi Vultr muudab serveri suuruse uuendamise pärast selle juba käivitamist lihtsaks, peaksite siiski hoolikalt kaaluma, millist serveri suurust teie rakendus vajab optimaalseks toimimiseks.
Jaotises Additional Features
peate valima Enable Private Networking
valiku. Kuigi selle juhendi järgimiseks pole muid valikuid vaja, peaksite kaaluma, kas igaüks neist on teie rakenduse kontekstis mõttekas või mitte.
Kui olete selle Multiple Private Networks
valiku oma kontol varem lubanud , peate seejärel oma serverite jaoks valima olemasoleva või looma uue privaatvõrgu. Kui te pole seda lubanud, võite seda jaotist ignoreerida. Lisateavet privaatvõrkude käsitsi konfigureerimise kohta leiate sellest juhendist .
Jätke see Firewall Group
jaotis praegu vahele . Ainult Dockeri sülemis haldurisõlmena toimiv server vajab avatud porte ja see tuleks konfigureerida pärast serveri juurutamist.
Lehe allosas peate sisestama a Server Qty
vähemalt kahest. Nagu varem mainitud, võib teil vaja minna rohkem kui kahte serverit, kuid selle juhendi järgimiseks piisab kahest.
Lõpuks Server Hostname & Label
sisestage jaotisesse iga serveri jaoks tähenduslikud ja meeldejäävad hostinimed ja sildid. Sest Käesolevas juhendis hostname ja etikett esimese server on docker-manager
ja Docker Manager
, respectively- ja docker-worker
ja Docker Worker
teise puhul.
Pärast kõigi konfiguratsioonide kahekordset kontrollimist võite Deploy Now
serverite käivitamiseks klõpsata lehe allosas oleval nupul.
Installige serveritesse Alpine Linux 3.9.0
Kuna valisite OS-i Vultri ISO teegist, peate Alpine Linux 3.9.0 igas serveris käsitsi installima ja konfigureerima.
Andnud Vultr minut või kaks eraldada oma servereid, klõpsake kolmekordne dot more options
ikoon Docker Manager
server server haldamise liidest , ja siis valida View Console
variant.
Teid tuleks sisselogimisviibaga konsooli suunata. Kui ei, siis oodake veel minut, kuni Vultr teie serverite juurutamise lõpetab.
Sisestage sellele sisselogimisviibale root
kasutajanimena. Alpine Linux 3.9.0 reaalajas versioon (mida teie serverid praegu töötavad) ei nõua superkasutajalt sisselogimisel parooli sisestamist.
Kui olete juurkontole edukalt sisse loginud, näete tervitussõnumit, millele järgneb shellisviip, mis näeb välja järgmine:
localhost:~#
Alpine Linuxi installeri käivitamiseks sisestage järgmine käsk:
# setup-alpine
Esiteks valige sobiv klaviatuuripaigutus. Selles juhendis kasutatakse us
paigutust ja varianti.
Masinanime määramisel valige sama hostinimi, mille määrasite selle serveri jaoks juurutamise ajal. Kui olete seda juhendit täpselt järginud, peaks hostinimi olema docker-manager
.
Saadaval peaks olema kaks võrguliidest: eth0
ja eth1
. Kui näete ainult eth0
, tähendab see , et te ei konfigureerinud oma serverite privaatvõrku õigesti. Lähtestada eth0
kasutades dhcp
ja lähtestada eth1
kasutades privaatset IP-aadressi, võrgumaski ja lüüsi, mis sellele serverile juurutamise ajal määrati. Nendele üksikasjadele pääsete juurde oma serveri seadete liidesest. Kui küsitakse, ärge tehke võrgu käsitsi seadistamist.
Sisestage juurkonto jaoks uus parool ja seejärel valige ajavöönd, mis sobib asukohale, kuhu need serverid juurutada.
Kui kavatsete kasutada HTTP/FTP puhverserverit, sisestage selle URL, vastasel juhul ärge määrake puhverserveri URL-i.
Valige süsteemi kella sünkroonimise haldamiseks NTP-klient. Selles juhendis kasutatakse busybox
.
Kui teilt küsitakse paketihoidla peegli kasutamist, valige üks selgesõnaliselt, sisestades selle numbri; tuvastab ja vali automaatselt kiireima, sisestades f
; või redigeerige hoidla konfiguratsioonifaili käsitsi, sisestades e
, mis pole soovitatav, välja arvatud juhul, kui olete Alpine Linuxiga tuttav. Selles juhendis kasutatakse esimest peeglit.
Kui kavatsete oma serveritele juurdepääsuks või SSH-põhise failisüsteemi hostimiseks kasutada SSH-d, valige kasutatav SSH-server. Selles juhendis kasutatakse openssh
.
Kui küsitakse ketta kasutamine, valida ketta vda
nagu sys
tüüp.
Alpine Linux 3.9.0 peaks nüüd olema teie serverisse installitud. Korrake seda protsessi kõigi teiste varem juurutatud serverite puhul, tagades, et hostinime ja eth1
võrguliidese asendate õigete väärtustega .
Installimisjärgse serveri konfiguratsioon
Praegu töötavad teie serverid endiselt Alpine Linuxi 3.9.0 reaalajas ISO versiooni. SSD installilt käivitamiseks külastage oma serveri seadete liidest, liikuge Custom ISO
külgmenüü kirjele ja klõpsake Remove ISO
nuppu. See peaks serveri taaskäivitama. Kui ei, siis taaskäivitage käsitsi.
Kui server on taaskäivitamise lõpetanud, navigeerige tagasi serveri veebikonsooli Docker Manager
.
Logige sisse juurkontole, kasutades parooli, mille määrasite installiprotsessi ajal varem.
Lubage kogukonna pakettide hoidla, eemaldades kommentaaride kasutamise kolmanda rea /etc/apk/repositories
kasutamise vi
. Sarnasel viisil saate lubada serva- ja testimishoidlad, kuid need ei pea seda juhendit järgima.
Sünkroonige serveri kohalik paketiindeks varem valitud kaughoidlaga, sisestades järgmise shellikäsu:
# apk update
Seejärel uuendage aegunud pakette:
# apk upgrade
Nagu varemgi, korrake seda konfiguratsiooniprotsessi iga varem juurutatud serveri puhul.
Installige Docker oma serveritesse
Enne Dockeri paketi installimist võiksite luua eraldi docker
kasutaja. Seda saate teha järgmise käsuga:
# adduser docker
Märkus. Sellel uuel kasutajal ja kõigil uude docker
rühma lisatud kasutajatel on pärast Dockeri paketi installimist juurõigused. Vaadake järgmist probleemi Moby Githubi hoidlast:
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.
Kui soovite anda docker
kasutajale sudo loa , installige esmalt sudo
pakett:
# apk add sudo
Seejärel looge sudo
grupp:
# addgroup sudo
Lõpuks lisage docker
kasutaja sudo
rühma:
# adduser docker sudo
Nüüd saate sudo seadistamise lõpetamiseks järgida selle juhendi 4. sammu .
Sel hetkel olete valmis Dockeri paketi installima. Pange tähele, et Dockeri docker
installimiseks ja konfigureerimiseks ei pea tingimata olema eraldi sudo-võimeline kasutaja, kuid käesolev juhend järgib seda tava.
Installige Dockeri pakett järgmise käsuga:
# apk add docker
Seejärel lubage Dockeri algskript:
# rc-update add docker
Lõpuks käivitage Dockeri deemon:
# rc-service docker start
Selle käsuga saate kontrollida, kas Docker töötab:
# docker info
Nagu eelmiselgi korral, korrake seda Dockeri installiprotsessi iga serveri jaoks, mille alguses juurutasite.
Käivitage Dockeri sülem ühe halduri ja ühe töötaja sõlmega
Kui kogu see seadistus on tehtud, olete lõpuks valmis Dockeri sülemi looma.
Looge sülem ja lisage halduri sõlm
Navigeerige tagasi oma Docker Manager
serveri veebikonsooli . Seadistate selle serveri oma sülemi haldurisõlmeks. Kui otsustasite docker
kasutaja varem luua , logige sisse selle kontoga, mitte superkasutajaga.
Sisestage järgmine käsk, kuid asendage 192.0.2.1
selle privaatse (mitte avaliku) IP-aadressiga, mis teie Docker Manager
serverile oli määratud:
$ docker swarm init --advertise-addr 192.0.2.1
Docker kuvab käsu, mida saate täita teistes privaatvõrgu serverites, et lisada need sellesse uude sülemi töötajate sõlmedena. Salvestage see käsk.
Lisage töötaja sõlm
Nüüd navigeerige oma Docker Worker
serveri veebikonsooli ja logige sisse docker
kasutajaga, kui olete selle loonud.
Selle serveri lisamiseks äsja loodud sülemi töötaja sõlmena käivitage sülemi loomise käsu väljundist salvestatud käsk. See näeb välja sarnane järgmisele:
$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377
Docker väljastab, kas sõlm suutis sülemiga liituda. Kui teil tekib sülemile töötajate sõlmede lisamisel probleeme, kontrollige veel kord oma privaatvõrgu konfiguratsiooni ja vaadake tõrkeotsingu juhendit .
Kui juurutasite alguses rohkem kui kaks serverit, saate ülaltoodud käsu abil lisada ülejäänud oma sülemi töötajate sõlmedena, suurendades teie rakendusele saadaolevate ressursside hulka. Teise võimalusena saate lisada täiendavaid haldurisõlmesid, kuid see ei kuulu selle juhendi ulatusse.
Kasutage oma Dockeri sülemi haldamiseks SSL-iga Portainerit
Sel hetkel on teie Dockeri sülem kasutamiseks valmis. Soovi korral võite siiski käivitada oma sülemi haldurisõlmes Portaineri virna. Portainer pakub mugavat veebiliidest teie sülemi ja selle sõlmede haldamiseks.
Nüüd on aeg luua oma sülemi jaoks tulemüürirühm. Kui teie rakendus seda konkreetselt ei nõua, paljastage ainult haldurisõlmede pordid . Töötajasõlmede portide paljastamine ilma hoolika kaalutlemiseta võib kaasa tuua turvaauke.
Liikuge tulemüüri haldusliidesele ja looge uus tulemüürirühm. Teie rakendus peaks dikteerima, millised pordid paljastada, kuid peate vähemalt 9000
Portaineri jaoks avalikustama pordi . Rakenda see tulemüürirühm Docker Manager
serverile.
Kuigi see pole nõutav, on tungivalt soovitatav Portaineri turvamine SSL-iga. Selle juhendi huvides kasutate ainult iseallkirjastatud OpenSSL-i sertifikaati, kuid peaksite kaaluma funktsiooni Let's Encrypt kasutamist tootmises.
Liikuge Docker Manager
serveri veebikonsooli , logige docker
kasutajaga sisse ja kasutage iseallkirjastatud OpenSSL-sertifikaadi loomiseks järgmisi käske:
$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650
Looge uus fail ~/portainer-agent-stack.yml
järgmise sisuga:
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:
Pärast selle Dockeri virna konfiguratsioonifaili muutmist, et see vastaks teie nõuetele, saate selle juurutada.
$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer
Portaineri töötamise kontrollimiseks käivitage järgmine käsk pärast seda, kui olete andnud Dockerile ühe või kaks minutit virna juurutamiseks:
$ docker ps
Näete kahte konteinerit piltidega portainer/portainer:latest
ja portainer/agent:latest
, mis kinnitab, et Portaineer käivitus õigesti.
Nüüd saate oma Dockeri sülemi konfigureerida ja hallata, külastades oma Docker Manager
serveri avalikku IP-aadressi pordis, 9000
kasutades HTTPS-i.