Creați un roi de Docker pe Alpine Linux 3.9.0

Introducere

Acest ghid vă va arăta cum puteți crea și configura un roi Docker folosind mai multe servere Alpine Linux 3.9.0 și Portainer. Rețineți că Vultr oferă o aplicație Docker One-Click care acceptă în prezent atât CentOS 7 x64, cât și Ubuntu 16.04 x64.

Cerințe preliminare

Pentru început, veți avea nevoie de cel puțin două servere VC2 care rulează Alpine Linux 3.9.0. În cadrul roiului Docker, unul dintre aceste servere va acționa ca o manager node- interfațare cu rețele externe și delegarea de locuri de muncă către nodurile lucrătorilor. Celălalt server va acționa apoi ca worker node- executarea lucrărilor delegate acestuia de către nodul manager.

Rețineți că puteți lansa mai mult de două servere dacă aplicația necesită redundanță și / sau mai multă putere de calcul, iar pașii prevăzuți în acest ghid se vor aplica în continuare.

Implementare

Accesați interfața de implementare a serverului Vultr .

Asigurați-vă că Vultr Cloud (VC2)fila este selectată în partea de sus a paginii.

Puteți selecta orice locație din Server Locationsecțiune, cu toate acestea toate serverele trebuie să fie în aceeași locație , altfel nu va fi posibilă implementarea unui roi Docker.

Selectați ISO Libraryfila Server Typesecțiunii și alegeți Alpine Linux 3.9.0 x86_64imaginea.

Selectați o opțiune adecvată din Server Sizesecțiune. Acest ghid va folosi dimensiunea serverului SSD de 25 GB, dar acest lucru poate fi insuficient pentru a satisface cerințele de resurse ale aplicației dvs. În timp ce Vultr simplifică actualizarea dimensiunii unui server după ce a fost deja lansat, ar trebui să luați în considerare cu atenție ce dimensiune a serverului trebuie să funcționeze optim.

În Additional Featuressecțiune, trebuie să selectați Enable Private Networkingopțiunea. Deși celelalte opțiuni nu sunt necesare pentru a urma acest ghid, ar trebui să luați în considerare dacă fiecare are sens sau nu în contextul cererii dvs.

Dacă anterior ați activat Multiple Private Networksopțiunea din contul dvs., va trebui să selectați o existentă sau să creați o rețea privată nouă pentru serverele dvs. Dacă nu l-ați activat, atunci puteți ignora această secțiune. Pentru informații despre configurarea manuală a rețelelor private, consultați acest ghid .

Salt Firewall Groupacum secțiunea. Doar serverul care acționează ca un nod de manager în roiul Docker va avea nevoie de porturi expuse și acest lucru ar trebui configurat după implementarea serverului.

În partea de jos a paginii, trebuie să introduceți Server Qtycel puțin două. După cum am menționat anterior, este posibil să aveți nevoie de mai mult de două servere, dar două sunt suficiente pentru a urma acest ghid.

În cele din urmă, în Server Hostname & Labelsecțiune, introduceți nume și etichete semnificative și memorabile pentru fiecare server. În sensul acestui ghid, numele de gazdă și eticheta primului server vor fi docker-managerși Docker Manager, respectiv, docker-workerși Docker Workerpentru al doilea, respectiv.

După ce ați verificat dublu toate configurațiile, puteți face clic pe Deploy Nowbutonul din partea de jos a paginii pentru a lansa serverele.

Instalați Alpine Linux 3.9.0 pe servere

Deoarece ați ales un sistem de operare din biblioteca ISO a Vultr, va trebui să instalați și să configurați manual Alpine Linux 3.9.0 pe fiecare server.

După ce acordați Vultr un minut sau două pentru a aloca serverele dvs., faceți clic pe more optionspictograma triplă punct pentru Docker Managerserverul de pe interfața de gestionare a serverului , apoi alegeți View Consoleopțiunea.

Ar trebui să fiți redirecționat către o consolă cu un prompt de conectare. În caz contrar, vă rugăm să așteptați încă un minut pentru ca Vultr să termine implementarea serverelor.

La acel prompt de conectare, introduceți rootca nume de utilizator. Versiunea live a Alpine Linux 3.9.0 (care funcționează în prezent serverele dvs.) nu necesită introducerea unei parole la superuser.

După ce v-ați autentificat cu succes în contul rădăcină, veți vedea un mesaj de bun venit urmat de un prompt de shell care arată astfel:

localhost:~# 

Pentru a porni programul de instalare Alpine Linux, introduceți următoarea comandă:

# setup-alpine

Mai întâi, alegeți o dispunere adecvată a tastaturii. Acest ghid va folosi usaspectul și varianta.

Când setați numele de gazdă, alegeți același nume de gazdă pe care l-ați setat pentru acest server în timpul implementării. Dacă urmați exact acest ghid, numele de gazdă ar trebui să fie docker-manager.

Două interfețe de rețea ar trebui să fie disponibile: eth0și eth1. Dacă vedeți numai eth0, asta înseamnă că nu ați configurat corect rețeaua privată a serverelor. Inițializați eth0folosind dhcpși inițializați eth1folosind adresa IP privată, netmask și gateway acest server a fost atribuit în timpul implementării. Puteți accesa aceste detalii din interfața de setări a serverului dvs. Când vi se solicită, nu efectuați nicio configurație manuală a rețelei.

Introduceți o nouă parolă pentru contul rădăcină, apoi selectați un fus orar potrivit pentru locația în care ați ales să implementați aceste servere.

Dacă intenționați să utilizați un proxy HTTP / FTP, introduceți URL-ul, altfel nu setați o adresă URL proxy.

Alegeți un client NTP pentru a gestiona sincronizarea ceasului de sistem. Acest ghid va folosi busybox.

Atunci când vi se solicită să folosiți o oglindă a depozitului de pachete, alegeți unul în mod explicit, introducând numărul său; detectează și selectează automat cel mai rapid introducând f; sau editați manual fișierul de configurare al depozitului e, introducând , ceea ce nu este recomandat decât dacă sunteți familiarizat cu Alpine Linux. Acest ghid va folosi prima oglindă.

Dacă intenționați să utilizați SSH pentru a vă accesa serverele sau pentru a găzdui un sistem de fișiere bazat pe SSH, selectați un server SSH pe care să-l utilizați. Acest ghid va folosi openssh.

Atunci când vi se solicită pentru un disc pentru utilizare, pentru a alege pe disc vdaca systip.

Alpine Linux 3.9.0 ar trebui să fie acum instalat pe serverul dvs. Repetați acest proces pentru toate celelalte servere pe care le-ați implementat anterior, asigurându-vă că înlocuiți valorile corecte pentru numele de gazdă și pentru eth1interfața de rețea.

Configurația serverului post-instalare

În acest moment, serverele dvs. rulează în continuare versiunea ISO în direct a Alpine Linux 3.9.0. Pentru a porni de la instalarea SSD, accesați interfața de setări a serverului dvs., navigați la Custom ISOintrarea în meniul lateral și faceți clic pe Remove ISObuton. Aceasta ar trebui să repornească serverul. Dacă nu, reporniți manual.

După ce serverul a terminat repornirea, navigați înapoi la consola web pentru server Docker Manager.

Conectați-vă la contul root folosind parola pe care ați setat-o ​​mai devreme în timpul procesului de instalare.

Activați depozitul de pachete comunitare prin a descărca a treia linie de /etc/apk/repositoriesutilizare vi. Puteți activa depozitele de bord și de testare într-o manieră similară, dar nu trebuie să urmeze acest ghid.

Sincronizați indexul pachetului local al serverului cu depozitul de la distanță selectat mai devreme, introducând următoarea comandă shell:

# apk update

Apoi actualizați pachetele învechite:

# apk upgrade

Ca și înainte, repetați acest proces de configurare pentru fiecare server pe care l-ați implementat anterior.

Instalați Docker pe serverele dvs.

Înainte de a instala pachetul Docker în sine, poate doriți să creați un dockerutilizator separat . Puteți face acest lucru folosind următoarea comandă:

# adduser docker

Notă: Acest nou utilizator și orice utilizatori adăugați la noul dockergrup vor avea privilegii root odată ce pachetul Docker a fost instalat. Vedeți următorul număr din depozitul Moby Github:

Datorită funcției --privilegedin docker, oricine se adaugă la grupul „docker” este echivalent rădăcină. Oricine din grupul de docker are o ușă din spate în jurul întregii politici de escaladare a privilegiilor și auditare a sistemului.

Acest lucru este diferit de faptul că cineva poate să ruleze sudo la root, unde are politică și auditul aplicat acestora.

Dacă doriți să acordați sudo permisiunea dockerutilizatorului, instalați mai întâi sudopachetul:

# apk add sudo

Apoi creați un sudogrup:

# addgroup sudo

În final, adăugați dockerutilizatorul la sudogrup:

# adduser docker sudo

Acum puteți urma pasul 4 al acestui ghid pentru a termina configurarea sudo.

În acest moment, sunteți gata să instalați pachetul Docker. Rețineți că nu este strict necesar să aveți un utilizator separat, sudo capabil dockersă instaleze și să configureze Docker, dar acest ghid urmărește această convenție.

Instalați pachetul Docker cu următoarea comandă:

# apk add docker

Apoi activați scriptul de inițiere Docker:

# rc-update add docker

În cele din urmă, porniți demonul Docker:

# rc-service docker start

Puteți verifica dacă Docker rulează cu această comandă:

# docker info

Ca și data trecută, repetați acest proces de instalare Docker pentru fiecare server pe care l-ați implementat la început.

Inițializați un roi Docker cu un nod manager și un nod muncitor

Cu toate aceste setări tratate, sunteți în sfârșit gata să creați roiul Docker.

Creați un roi și adăugați un nod manager

Navigați înapoi la consola web a Docker Managerserverului dvs. Vei configura acest server ca nod de manager în roiul tău. Dacă ați ales să creați dockerutilizatorul mai devreme, conectați-vă utilizând acel cont și nu utilizatorul.

Introduceți următoarea comandă, dar înlocuiți 192.0.2.1cu adresa IP privată, (nu publică), pe Docker Managercare a fost atribuit serverul dvs .:

$ docker swarm init --advertise-addr 192.0.2.1

Docker va afișa o comandă pe care o puteți executa pe alte servere din rețeaua privată pentru a le adăuga ca noduri de lucru la acest nou roi. Salvați această comandă.

Adăugați un nod muncitor

Acum navigați la consola web a Docker Workerserverului dvs. , conectându-vă la dockerutilizator dacă ați creat-o.

Pentru a adăuga acest server ca nod muncitor la roiul pe care tocmai l-ați creat, executați comanda pe care ați salvat-o de la ieșirea comenzii de creare a roiului. Va arăta similar cu următoarele:

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

Docker va emite dacă nodul a fost capabil să se alăture roiului. Dacă întâmpinați probleme cu adăugarea de noduri pentru lucrători la roi, verificați de două ori configurația rețelei private și consultați acest ghid pentru depanare.

Dacă ați implementat mai mult de două servere la început, puteți adăuga restul ca noduri de lucrător la roiul dvs. folosind comanda de mai sus, mărind resursele disponibile pentru aplicația dvs. În mod alternativ, puteți adăuga noduri de manager suplimentare, dar acest lucru nu depășește scopul acestui ghid.

Implementați Portainer cu SSL pentru a gestiona roiul Docker

În acest moment, roiul Docker este gata de utilizare. Puteți, totuși, să lansați opțional o stivă Portainer pe nodul managerului din roiul dvs. Portainer oferă o interfață web convenabilă pentru gestionarea roiului și a nodurilor din acestea.

Acum este timpul să creați un grup de firewall pentru roiul dvs. Cu excepția cazului în care aplicația dvs. o cere în mod specific, expuneți doar porturile pe nodurile managerului . Expunerea porturilor pe nodurile lucrătorului dvs. fără luarea în considerare atentă poate introduce vulnerabilități.

Navigați la interfața de gestionare a firewallului și creați un nou grup de firewall. Aplicația dvs. ar trebui să dicteze ce porturi trebuie expuse, dar, cel puțin, trebuie să expuneți portul 9000pentru Portainer. Aplicați acest grup de firewall pe Docker Managerserver.

Deși nu este necesar, securizarea Portainer cu SSL este recomandată. De dragul acestui ghid, veți utiliza doar un certificat OpenSSL autofirmat, dar ar trebui să luați în considerare utilizarea „Encrypt” în producție.

Navigați la consola web a Docker Managerserverului, conectați-vă cu dockerutilizatorul și utilizați următoarele comenzi pentru a genera un certificat OpenSSL autofirmat:

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

Creați un nou fișier ~/portainer-agent-stack.yml, cu următorul conținut:

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:

După modificarea acestui fișier de configurare stivă Docker pentru a se conforma cerințelor dvs., puteți să îl implementați:

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

Pentru a verifica dacă Portainer funcționează, executați următoarea comandă după ce i-a dat lui Docker un minut sau două pentru a implementa stiva:

$ docker ps

Vei vedea două containere cu imaginile portainer/portainer:latestși portainer/agent:latest, verificând că Portainer a început corect.

Acum puteți configura și gestiona roiul Docker vizitând adresa IP publică a Docker Managerserverului dvs. în port 9000utilizând HTTPS.



Leave a Comment

Implementați Kubernetes cu Kubeadm pe CentOS 7

Implementați Kubernetes cu Kubeadm pe CentOS 7

Prezentare generală Acest articol este menit să vă ajute să obțineți un cluster Kubernetes și să funcționeze cu kubeadm în cel mai scurt timp. Acest ghid va implementa două servere, pe

Instalați Rancher OS prin iPXE

Instalați Rancher OS prin iPXE

Rancher OS este o distribuție Linux foarte ușoară construită în jurul Docker. Sistemul de operare în sine cântărește în jur de 20 MB. Acest tutorial vă va pune în funcțiune

Instalați Docker CE pe Ubuntu 18.04

Instalați Docker CE pe Ubuntu 18.04

Introducere Docker este o aplicație care ne permite să implementăm programe rulate sub formă de containere. A fost scris în popularul limbaj de programare Go

Instalarea Docker pe CentOS 7

Instalarea Docker pe CentOS 7

Folosind un sistem diferit? Docker este o aplicație care permite implementarea software-ului în containerele virtuale. A fost scris în programul Go

Instalați Rancher pe Ubuntu 16.04

Instalați Rancher pe Ubuntu 16.04

Folosind un sistem diferit? Introducere Rancher este o platformă open source pentru rularea containerelor și construirea unui serviciu de containere private. Rancher este de bază

Implementați o aplicație PHP folosind Docker-compose

Implementați o aplicație PHP folosind Docker-compose

Aplicațiile PHP sunt de obicei compuse dintr-un server web, un sistem relațional de baze de date și însuși interpretul limbii. În acest tutorial vom fi levierul

Instalarea docker-compose pe CoreOS

Instalarea docker-compose pe CoreOS

Acest articol explică cum se instalează docker-compose pe CoreOS. În CoreOS, folderul / usr / este imutabil, astfel că calea standard / usr / local / bin nu este disponibilă fo

Instalați Rancher pe CentOS 7

Instalați Rancher pe CentOS 7

Folosind un sistem diferit? Introducere Rancher este o platformă open source pentru rularea containerelor și construirea unui serviciu de containere private. Rancher este de bază

Sesiunea lipicioasă cu Docker Swarm (CE) pe Debian 9

Sesiunea lipicioasă cu Docker Swarm (CE) pe Debian 9

Folosind un sistem diferit? Introducere Docker Swarm transformă serverele dvs. individuale într-un grup de calculatoare; facilitarea scalării și disponibilității ridicate

Două instrumente de gestionare grafică Docker: DockerUI și Shipyard

Două instrumente de gestionare grafică Docker: DockerUI și Shipyard

Cu ajutorul aplicației Vultr Docker, puteți să implementați cu ușurință Docker pe instanța serverului dvs. Vultr. Între timp, puteți facilita sarcina de gestionare a Docker

Pe CoreOS, configurați-vă propriul registru Docker

Pe CoreOS, configurați-vă propriul registru Docker

Cu toții cunoaștem și iubim Docker, o platformă pentru a crea, gestiona și distribui containerele de aplicații pe mai multe mașini. Docker Inc. oferă un serviciu

Configurare Sentry prin Docker pe Ubuntu 16.04

Configurare Sentry prin Docker pe Ubuntu 16.04

Folosind un sistem diferit? Introducere Sentry este o soluție open source pentru urmărirea erorilor. Sentry urmărește excepțiile și alte mesaje utile

Cum se instalează Harbour pe CentOS 7

Cum se instalează Harbour pe CentOS 7

Harbour este un server de registru open-source de tip enterprise care stochează și distribuie imagini Docker. Harbour extinde distribuția Docker sursa deschisă b

Instalați Rancher Server pe RancherOS

Instalați Rancher Server pe RancherOS

Prezentare generală RancherOS este un sistem de operare incredibil de ușor (doar aproximativ 60 MB) care rulează un sistem daemon Docker ca PID 0 pentru rularea serviciilor sistemului

Noțiuni introductive despre Kubernetes pe CentOS 7

Noțiuni introductive despre Kubernetes pe CentOS 7

Kubernetes este o platformă open-source dezvoltată de Google pentru gestionarea aplicațiilor containerizate într-un grup de servere. Se construiește peste un deceniu și

Sesiunea lipicioasă cu roiul de andocare (CE) pe CentOS 7

Sesiunea lipicioasă cu roiul de andocare (CE) pe CentOS 7

Folosind un sistem diferit? Introducere Docker Swarm transformă serverele dvs. individuale într-un grup de calculatoare, facilitând scalarea, disponibilitatea ridicată

Cum să utilizați Docker: Crearea primului dvs. container Docker

Cum să utilizați Docker: Crearea primului dvs. container Docker

Acest tutorial explică elementele de bază pentru a începe cu Docker. Presupun că aveți deja Docker instalat. Pașii acestui tutorial vor funcționa pe un an

Soldul de încărcare cu Docker

Soldul de încărcare cu Docker

Când executați o aplicație web, în ​​mod normal doriți să profitați la maximum de resursele dvs. fără a fi necesar să convertiți software-ul pentru a utiliza multitreading

Începeți cu SQL Server 2017 (MS-SQL) pe CentOS 7 cu Docker

Începeți cu SQL Server 2017 (MS-SQL) pe CentOS 7 cu Docker

Condiții preliminare Motor Docker 1.8+. Minim de 4 GB spațiu pe disc. Minim de 4 GB RAM. Pasul 1. Instalează Docker Pentru a instala SQL-Server, Docker mus

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe