Opret en Docker Swarm på Alpine Linux 3.9.0

Introduktion

Denne guide viser dig, hvordan du opretter og konfigurerer en Docker-sværm ved hjælp af flere Alpine Linux 3.9.0-servere og Portainer. Vær opmærksom på, at Vultr tilbyder en One-Click Docker-app, der i øjeblikket understøtter både CentOS 7 x64 og Ubuntu 16.04 x64.

Forudsætninger

For at begynde skal du bruge mindst to VC2-servere, der kører Alpine Linux 3.9.0. Inden for din Docker-sværm vil en af ​​disse servere fungere som en manager nodegrænseflade med eksterne netværk og uddelegere job til arbejderknudepunkter. Den anden server vil derefter fungere som et worker node- udførende job, der er uddelegeret til den af ​​managerknudepunktet.

Bemærk, at du kan starte mere end to servere, hvis din applikation kræver redundans og/eller mere computerkraft, og trinene i denne vejledning vil stadig gælde.

Implementering

Besøg Vultr serverimplementeringsgrænsefladen .

Sørg for, at Vultr Cloud (VC2)fanen er valgt øverst på siden.

Du kan vælge en hvilken som helst placering fra Server Locationsektionen, dog skal alle servere være på samme placering , ellers vil det ikke være muligt at implementere en Docker-sværm til dem.

Vælg ISO Libraryfanen for Server Typesektionen, og vælg Alpine Linux 3.9.0 x86_64billedet.

Vælg en passende mulighed fra Server Sizesektionen. Denne vejledning vil bruge 25 GB SSD-serverstørrelsen, men denne kan være utilstrækkelig til at opfylde din applikations ressourcekrav. Selvom Vultr gør det nemt at opgradere en servers størrelse, efter at den allerede er blevet lanceret, bør du stadig nøje overveje, hvilken serverstørrelse din applikation skal bruge for at fungere optimalt.

I Additional Featuresafsnittet skal du vælge Enable Private Networkingmuligheden. Selvom de andre muligheder ikke er nødvendige for at følge denne vejledning, bør du overveje, om hver enkelt giver mening i forbindelse med din ansøgning.

Hvis du tidligere har aktiveret Multiple Private Networksmuligheden på din konto, skal du enten vælge et eksisterende eller oprette et nyt privat netværk til dine servere. Hvis du ikke har aktiveret det, kan du ignorere dette afsnit. Se denne vejledning for at få oplysninger om manuel konfiguration af private netværk .

Spring Firewall Groupafsnittet over for nu. Kun serveren, der fungerer som en managerknude i Docker-sværmen, har brug for udsatte porte, og dette bør konfigureres efter serverinstallation.

Helt nederst på siden skal du indtaste en Server Qtypå mindst to. Som tidligere nævnt har du muligvis brug for mere end to servere, men to er nok til at følge denne guide.

Til sidst skal du i Server Hostname & Labelafsnittet indtaste meningsfulde og mindeværdige værtsnavne og etiketter for hver server. I forbindelse med denne vejledning vil værtsnavnet og etiketten for den første server være henholdsvis docker-managerog Docker Manager, og docker-workerog Docker Workerfor den anden.

Efter at have dobbelttjekket alle dine konfigurationer, kan du klikke på Deploy Nowknappen nederst på siden for at starte dine servere.

Installer Alpine Linux 3.9.0 på serverne

Fordi du har valgt et OS fra Vultrs ISO-bibliotek, skal du manuelt installere og konfigurere Alpine Linux 3.9.0 på hver server.

Efter at have givet Vultr et minut eller to til at tildele dine servere, skal du klikke på det tredobbelte prikikon more optionsfor Docker Managerserveren på serveradministrationsgrænsefladen og derefter vælge View Consolemuligheden.

Du bør omdirigeres til en konsol med en login-prompt. Hvis ikke, vent venligst endnu et minut til Vultr er færdig med at implementere dine servere.

Ved den login-prompt skal du indtaste rootsom brugernavn. Liveversionen af ​​Alpine Linux 3.9.0 (som er det, dine servere kører i øjeblikket) kræver ikke, at superbrugeren indtaster en adgangskode, når han logger på.

Når du har logget ind på root-kontoen, vil du se en velkomstmeddelelse efterfulgt af en shell-prompt, der ser ud som følgende:

localhost:~# 

Indtast følgende kommando for at starte Alpine Linux-installationsprogrammet:

# setup-alpine

Først skal du vælge et passende tastaturlayout. Denne vejledning vil bruge uslayoutet og varianten.

Når du indstiller værtsnavnet, skal du vælge det samme værtsnavn, som du angiver for denne server under installationen. Hvis du har fulgt denne vejledning nøjagtigt, skal værtsnavnet være docker-manager.

To netværksgrænseflader bør være tilgængelige: eth0og eth1. Hvis du kun ser eth0, betyder det, at du ikke har konfigureret dine serveres private netværk korrekt. Initialiser eth0ved hjælp af dhcp, og initialiser eth1ved hjælp af den private IP-adresse, netmaske og gateway, som denne server blev tildelt under installationen. Du kan få adgang til disse detaljer fra indstillingsgrænsefladen på din server. Når du bliver bedt om det, skal du ikke udføre nogen manuel netværkskonfiguration.

Indtast en ny adgangskode til root-kontoen, og vælg derefter en tidszone, der passer til den placering, du valgte at implementere disse servere til.

Hvis du har til hensigt at bruge en HTTP/FTP-proxy, skal du indtaste dens URL, ellers skal du ikke angive en proxy-URL.

Vælg en NTP-klient til at administrere systemursynkronisering. Denne vejledning vil bruge busybox.

Når du bliver bedt om at bruge et pakkelagerspejl, skal du enten vælge et eksplicit ved at indtaste dets nummer; automatisk opdage og vælge den hurtigste ved at indtaste f; eller rediger repository-konfigurationsfilen manuelt ved at indtaste e, hvilket ikke anbefales, medmindre du er fortrolig med Alpine Linux. Denne guide vil bruge det første spejl.

Hvis du planlægger at bruge SSH til at få adgang til dine servere eller være vært for et SSH-baseret filsystem, skal du vælge en SSH-server, du vil bruge. Denne vejledning vil bruge openssh.

Når du bliver bedt om at bruge en disk, skal du vælge disk vdasom systype.

Alpine Linux 3.9.0 skulle nu være installeret på din server. Gentag denne proces for alle andre servere, du har installeret tidligere, og sørg for, at du erstatter værtsnavnet og eth1netværksgrænsefladen med de korrekte værdier .

Serverkonfiguration efter installation

På dette tidspunkt kører dine servere stadig den levende ISO-version af Alpine Linux 3.9.0. For at starte fra SSD-installationen skal du besøge indstillingsgrænsefladen på din server, navigere til Custom ISOsidemenuen og klikke på Remove ISOknappen. Dette burde genstarte serveren. Hvis det ikke gør det, skal du genstarte manuelt.

Når serveren er færdig med at genstarte, skal du navigere tilbage til webkonsollen for serveren Docker Manager.

Log ind på root-kontoen ved hjælp af den adgangskode, du har angivet tidligere under installationsprocessen.

Aktiver fællesskabspakkelageret ved at fjerne kommentering af den tredje linje med /etc/apk/repositoriesbrug vi. Du kan aktivere kant- og testlagrene på lignende måde, men de er ikke forpligtet til at følge denne vejledning.

Synkroniser serverens lokale pakkeindeks med det fjernlager, du valgte tidligere, ved at indtaste følgende shell-kommando:

# apk update

Opgrader derefter forældede pakker:

# apk upgrade

Som før skal du gentage denne konfigurationsproces for hver server, du har installeret tidligere.

Installer Docker på dine servere

Før du installerer selve Docker-pakken, vil du måske oprette en separat dockerbruger. Du kan gøre dette ved at bruge følgende kommando:

# adduser docker

Bemærk: Denne nye bruger og alle brugere, der tilføjes til den nye dockergruppe, vil have root-privilegier, når Docker-pakken er blevet installeret. Se følgende problem fra Moby Github-depotet:

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.

Hvis du gerne vil give sudo-tilladelse til dockerbrugeren, skal du først installere sudopakken:

# apk add sudo

Opret derefter en sudogruppe:

# addgroup sudo

Tilføj endelig dockerbrugeren til sudogruppen:

# adduser docker sudo

Nu kan du følge trin 4 i denne vejledning for at afslutte konfigurationen af ​​sudo.

På dette tidspunkt er du klar til at installere Docker-pakken. Bemærk, at det ikke er strengt nødvendigt at have en separat, sudo-egnet dockerbruger til at installere og konfigurere Docker, men denne vejledning følger denne konvention.

Installer Docker-pakken med følgende kommando:

# apk add docker

Aktiver derefter Docker init-scriptet:

# rc-update add docker

Start endelig Docker-dæmonen:

# rc-service docker start

Du kan bekræfte, at Docker kører med denne kommando:

# docker info

Som med sidste gang, gentag denne Docker-installationsproces for hver server, du installerede i starten.

Initialiser en Docker-sværm med én lederknude og én arbejderknude

Med alt det setup behandlet, er du endelig klar til at skabe Docker-sværmen.

Opret en sværm og tilføj en managerknude

Naviger tilbage til webkonsollen på din Docker Managerserver. Du vil konfigurere denne server som en managerknude i din sværm. Hvis du valgte at oprette dockerbrugeren tidligere, skal du logge ind med denne konto i stedet for superbrugeren.

Indtast følgende kommando, men erstat 192.0.2.1med den private (ikke den offentlige), IP-adresse, som din Docker Managerserver blev tildelt:

$ docker swarm init --advertise-addr 192.0.2.1

Docker viser en kommando, du kan udføre på andre servere i det private netværk for at tilføje dem som arbejderknudepunkter til denne nye sværm. Gem denne kommando.

Tilføj en arbejderknude

Naviger nu til webkonsollen på din Docker Workerserver, log på med dockerbrugeren, hvis du har oprettet den.

For at tilføje denne server som en arbejderknude til den sværm, du lige har oprettet, skal du udføre den kommando, du gemte fra outputtet af kommandoen til oprettelse af sværm. Det vil ligne følgende:

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

Docker vil udsende, om noden var i stand til at deltage i sværmen. Hvis du støder på problemer med at tilføje arbejdernoder til sværmen, skal du dobbelttjekke din private netværkskonfiguration og se denne vejledning for fejlfinding.

Hvis du installerede mere end to servere i begyndelsen, kan du tilføje resten som arbejdernoder til din sværm ved at bruge kommandoen ovenfor, hvilket øger mængden af ​​ressourcer, der er tilgængelige for din applikation. Alternativt kan du tilføje yderligere managerknudepunkter, men det er uden for rammerne af denne vejledning.

Implementer Portainer med SSL for at administrere din Docker-sværm

På dette tidspunkt er din Docker-sværm klar til brug. Du kan dog eventuelt starte en Portainer-stak på managerknudepunktet i din sværm. Portainer tilbyder en praktisk webgrænseflade til styring af din sværm og noderne deri.

Det er nu tid til at oprette en firewall-gruppe til din sværm. Medmindre din applikation specifikt kræver det, skal du kun udsætte porte på dine managerknudepunkter . Eksponering af porte på dine arbejdernoder uden nøje overvejelse kan introducere sårbarheder.

Naviger til firewall-administrationsgrænsefladen, og opret en ny firewallgruppe. Din ansøgning bør diktere, hvilke porte der skal eksponeres, men du skal i det mindste blotlægge port 9000for Portainer. Anvend denne firewall-gruppe på Docker Managerserveren.

Selvom det ikke er påkrævet, anbefales det kraftigt at sikre Portainer med SSL. Af hensyn til denne guide vil du kun bruge et selvsigneret OpenSSL-certifikat, men du bør overveje at bruge Let's Encrypt i produktionen.

Naviger til Docker Managerserverens webkonsol , log ind med dockerbrugeren, og brug følgende kommandoer til at generere et selvsigneret OpenSSL-certifikat:

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

Opret en ny fil, ~/portainer-agent-stack.yml, med følgende indhold:

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:

Efter at have ændret denne Docker stack-konfigurationsfil, så den er i overensstemmelse med dine krav, kan du implementere den:

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

For at bekræfte, at Portainer virker, skal du udføre følgende kommando efter at have givet Docker et minut eller to til at implementere stakken:

$ docker ps

Du vil se to beholdere med billederne portainer/portainer:latestog portainer/agent:latest, der bekræfter, at Portainer startede korrekt.

Du kan nu konfigurere og administrere din Docker-sværm ved at besøge den offentlige IP-adresse på din Docker Managerserver på porten 9000ved hjælp af HTTPS.


Sådan tjekker du Hyper-V-containere på Windows 10 Insider

Sådan tjekker du Hyper-V-containere på Windows 10 Insider

Microsoft har i et nyt blogindlæg forklaret, hvordan Windows Insiders kan teste Hyper-V-containere på Windows 10, en ny virtualiseringsløsning, der giver applikationer mulighed for at køre uden at påvirke resten af ​​dit operativsystem.

Sådan installeres Harbor på CentOS 7

Sådan installeres Harbor på CentOS 7

Harbor er en open source-registreringsserver i virksomhedsklassen, der gemmer og distribuerer Docker-billeder. Harbor udvider open source Docker Distribution b

Installer Rancher OS via iPXE

Installer Rancher OS via iPXE

Rancher OS er en meget let Linux-distribution bygget op omkring Docker. Selve operativsystemet vejer omkring 20 MB. Denne tutorial får dig op at køre med

På CoreOS skal du konfigurere dit eget Docker-register

På CoreOS skal du konfigurere dit eget Docker-register

Vi kender og elsker alle Docker, en platform til at skabe, administrere og distribuere applikationscontainere på tværs af flere maskiner. Docker Inc. leverer en service t

Installation af docker-compose på CoreOS

Installation af docker-compose på CoreOS

Denne artikel forklarer, hvordan du installerer docker-compose på CoreOS. I CoreOS er mappen /usr/ uforanderlig, så standardstien /usr/local/bin er ikke tilgængelig for

Installer Rancher på CentOS 7

Installer Rancher på CentOS 7

Bruger du et andet system? Introduktion Rancher er en open source-platform til at køre containere og bygge en privat containerservice. Rancher er base

Installer Docker CE på Ubuntu 18.04

Installer Docker CE på Ubuntu 18.04

Introduktion Docker er et program, der giver os mulighed for at implementere programmer, der køres som containere. Det er skrevet i det populære Go-programmeringssprog

Opret en Docker Swarm på Alpine Linux 3.9.0

Opret en Docker Swarm på Alpine Linux 3.9.0

Introduktion Denne guide viser dig, hvordan du opretter og konfigurerer en Docker-sværm ved hjælp af flere Alpine Linux 3.9.0-servere og Portainer. Vær venligst opmærksom på det

Implementer en PHP-applikation ved hjælp af Docker-compose

Implementer en PHP-applikation ved hjælp af Docker-compose

PHP-applikationer er normalt sammensat af en webserver, et relationsdatabasesystem og selve sprogfortolkeren. I denne tutorial vil vi være gearing

Load Balance med Docker

Load Balance med Docker

Når du kører en webapplikation, vil du normalt få mest muligt ud af dine ressourcer uden at skulle konvertere din software til at bruge multithreading o

Implementer en Node.js-applikation ved hjælp af Docker

Implementer en Node.js-applikation ved hjælp af Docker

Denne artikel viser dig, hvordan du implementerer din Node-applikation i en Docker-container. Bemærk: Denne vejledning forudsætter, at du har Docker installeret og læst

Installation af Docker CE på CentOS 7

Installation af Docker CE på CentOS 7

Docker container teknologi giver dig mulighed for at køre applikationer i et specifikt og isoleret miljø. Docker Community Edition (CE) er det nye navn for fre

Implementer Kubernetes med Kubeadm på CentOS 7

Implementer Kubernetes med Kubeadm på CentOS 7

Oversigt Denne artikel er beregnet til at hjælpe dig med at få en Kubernetes-klynge op at køre med kubeadm på ingen tid. Denne vejledning vil implementere to servere på

Installation af Docker på CentOS 7

Installation af Docker på CentOS 7

Bruger du et andet system? Docker er et program, der giver mulighed for implementering af software i virtuelle containere. Det blev skrevet i Go-programmet

Installation af Docker CE på Debian 9

Installation af Docker CE på Debian 9

Bruger du et andet system? Introduktion Docker er et program, der giver mulighed for udrulning af software i virtuelle containere. Det blev skrevet i G

Kom godt i gang med SQL Server 2017 (MS-SQL) på CentOS 7 med Docker

Kom godt i gang med SQL Server 2017 (MS-SQL) på CentOS 7 med Docker

Forudsætninger Docker-motor 1.8+. Minimum 4 GB diskplads. Minimum 4 GB RAM. Trin 1. Installer Docker For at installere SQL-Server skal Docker mus

Sticky Session With Docker Swarm (CE) på Debian 9

Sticky Session With Docker Swarm (CE) på Debian 9

Bruger du et andet system? Introduktion Docker Swarm forvandler dine individuelle servere til en klynge af computere; letter skalering, høj tilgængelighed og

To Docker grafiske styringsværktøjer: DockerUI og Shipyard

To Docker grafiske styringsværktøjer: DockerUI og Shipyard

Ved hjælp af Vultr Docker-applikationen kan du nemt implementere Docker på din Vultr-serverinstans. I mellemtiden kan du lette Docker-administrationsopgaven

Installer Rancher Server på RancherOS

Installer Rancher Server på RancherOS

Oversigt RancherOS er et utroligt let operativsystem (kun omkring 60 MB), der kører en system Docker-dæmon som PID 0 til at køre systemtjenester

Kom godt i gang med Kubernetes på CentOS 7

Kom godt i gang med Kubernetes på CentOS 7

Kubernetes er en open source-platform udviklet af Google til styring af containeriserede applikationer på tværs af en klynge af servere. Det bygger på et årti og

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere