Lag en Docker Swarm på Alpine Linux 3.9.0

Introduksjon

Denne guiden viser deg hvordan du oppretter og konfigurerer en Docker-sverm ved å bruke flere Alpine Linux 3.9.0-servere og Portainer. Vær oppmerksom på at Vultr tilbyr en One-Click Docker-app som for øyeblikket støtter både CentOS 7 x64 og Ubuntu 16.04 x64.

Forutsetninger

For å begynne trenger du minst to VC2-servere som kjører Alpine Linux 3.9.0. Innenfor Docker-svermen din vil en av disse serverne fungere som et manager nodegrensesnitt med eksterne nettverk og delegere jobber til arbeidernoder. Den andre serveren vil da fungere som en worker node- utførende jobber delegert til den av administratornoden.

Merk at du kan starte mer enn to servere hvis applikasjonen din krever redundans og/eller mer datakraft, og trinnene i denne veiledningen vil fortsatt gjelde.

Utplassering

Gå til Vultr- serverdistribusjonsgrensesnittet .

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

Du kan velge hvilken som helst plassering fra Server Locationseksjonen, men alle servere må være på samme plassering , ellers vil det ikke være mulig å distribuere en Docker-sverm til dem.

Velg ISO Libraryfanen for Server Typedelen og velg Alpine Linux 3.9.0 x86_64bildet.

Velg et passende alternativ fra Server Sizedelen. Denne veiledningen vil bruke SSD-serverstørrelsen på 25 GB, men denne kan være utilstrekkelig for å oppfylle applikasjonens ressurskrav. Mens Vultr gjør det enkelt å oppgradere en serverstørrelse etter at den allerede er lansert, bør du likevel vurdere nøye hvilken serverstørrelse applikasjonen din trenger for å yte optimalt.

I Additional Featuresseksjonen må du velge Enable Private Networkingalternativet. Selv om de andre alternativene ikke er påkrevd for å følge denne veiledningen, bør du vurdere om hver enkelt er fornuftig i forbindelse med søknaden din.

Hvis du tidligere har aktivert Multiple Private Networksalternativet på kontoen din, må du enten velge et eksisterende eller opprette et nytt privat nettverk for serverne dine. Hvis du ikke har aktivert det, kan du ignorere denne delen. For informasjon om manuell konfigurering av private nettverk, se denne veiledningen .

Hopp over Firewall Groupdelen for nå. Bare serveren som fungerer som en administratornode i Docker-svermen vil trenge eksponerte porter, og dette bør konfigureres etter serverdistribusjon.

Helt nederst på siden må du skrive inn en Server Qtypå minst to. Som nevnt tidligere kan det hende du trenger mer enn to servere, men to er tilstrekkelig for å følge denne veiledningen.

Til slutt, i Server Hostname & Labeldelen, skriv inn meningsfylte og minneverdige vertsnavn og etiketter for hver server. Ved anvendelsen av denne retningslinje vil vertsnavn og etikett av den første serveren være docker-managerog Docker Manager, henhv og docker-workerog Docker Workerfor det andre, henholdsvis.

Etter å ha dobbeltsjekket alle konfigurasjonene dine, kan du klikke på Deploy Nowknappen nederst på siden for å starte serverne dine.

Installer Alpine Linux 3.9.0 på serverne

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

Etter å ha gitt Vultr et minutt eller to på å tildele serverne dine, klikk på trippelpunktikonet more optionsfor Docker Managerserveren på serveradministrasjonsgrensesnittet , og velg deretter View Consolealternativet.

Du bør bli omdirigert til en konsoll med en påloggingsforespørsel. Hvis ikke, vent et minutt til før Vultr er ferdig med å distribuere serverne dine.

Ved den påloggingsforespørselen, skriv inn rootsom brukernavn. Liveversjonen av Alpine Linux 3.9.0 (som er det serverne dine kjører for øyeblikket) krever ikke at superbrukeren oppgir passord når han logger på.

Når du har logget på root-kontoen, vil du se en velkomstmelding etterfulgt av en shell-melding som ser slik ut:

localhost:~# 

For å starte Alpine Linux-installasjonsprogrammet, skriv inn følgende kommando:

# setup-alpine

Først velger du et passende tastaturoppsett. Denne veiledningen vil bruke usoppsettet og varianten.

Når du angir vertsnavnet, velg det samme vertsnavnet som du angir for denne serveren under distribusjonen. Hvis du har fulgt denne veiledningen nøyaktig, bør vertsnavnet være docker-manager.

To nettverksgrensesnitt bør være tilgjengelige: eth0og eth1. Hvis du bare ser eth0, betyr det at du ikke konfigurerte servernes private nettverk riktig. Initialiser eth0med dhcp, og initialiser eth1med den private IP-adressen, nettmasken og gatewayen som denne serveren ble tildelt under distribusjonen. Du kan få tilgang til disse detaljene fra innstillingsgrensesnittet til serveren din. Når du blir bedt om det, ikke utfør noen manuell nettverkskonfigurasjon.

Skriv inn et nytt passord for root-kontoen, og velg deretter en tidssone som passer for stedet du valgte å distribuere disse serverne til.

Hvis du har tenkt å bruke en HTTP/FTP-proxy, skriv inn URL-adressen, ellers må du ikke angi en proxy-URL.

Velg en NTP-klient for å administrere systemklokkesynkronisering. Denne veiledningen vil bruke busybox.

Når du blir bedt om å bruke et pakkelagerspeil, kan du enten velge et eksplisitt ved å skrive inn nummeret; automatisk oppdage og velge den raskeste ved å skrive inn f; eller rediger repository-konfigurasjonsfilen manuelt ved å skrive inn e, som ikke anbefales med mindre du er kjent med Alpine Linux. Denne guiden vil bruke det første speilet.

Hvis du planlegger å bruke SSH for å få tilgang til serverne dine eller for å være vert for et SSH-basert filsystem, velg en SSH-server du vil bruke. Denne veiledningen vil bruke openssh.

Når du blir bedt om å bruke en disk, velger du disk vdasom systype.

Alpine Linux 3.9.0 skal nå være installert på serveren din. Gjenta denne prosessen for alle andre servere du distribuerte tidligere, og sørg for at du erstatter de riktige verdiene for vertsnavn og eth1nettverksgrensesnitt.

Serverkonfigurasjon etter installasjon

På dette tidspunktet kjører serverne dine fortsatt den levende ISO-versjonen av Alpine Linux 3.9.0. For å starte opp fra SSD-installasjonen, besøk innstillingsgrensesnittet til serveren din, naviger til Custom ISOsidemenyoppføringen og klikk på Remove ISOknappen. Dette bør starte serveren på nytt. Hvis den ikke gjør det, start på nytt manuelt.

Når serveren er ferdig med å starte på nytt, naviger tilbake til nettkonsollen for serveren Docker Manager.

Logg inn på root-kontoen med passordet du anga tidligere under installasjonsprosessen.

Aktiver fellesskapspakkelageret ved å oppheve kommentering av den tredje linjen /etc/apk/repositoriesmed vi. Du kan aktivere kant- og testlagrene på lignende måte, men de er ikke pålagt å følge denne veiledningen.

Synkroniser serverens lokale pakkeindeks med det eksterne depotet du valgte tidligere ved å skrive inn følgende skallkommando:

# apk update

Oppgrader deretter utdaterte pakker:

# apk upgrade

Som før, gjenta denne konfigurasjonsprosessen for hver server du distribuerte tidligere.

Installer Docker på serverne dine

Før du installerer selve Docker-pakken, kan det være lurt å opprette en egen dockerbruker. Du kan gjøre dette ved å bruke følgende kommando:

# adduser docker

Merk: Denne nye brukeren og alle brukere som legges til i den nye dockergruppen vil ha root-privilegier når Docker-pakken er installert. Se følgende utgave 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 ønsker å gi sudo-tillatelse til dockerbrukeren, installer først sudopakken:

# apk add sudo

Deretter oppretter du en sudogruppe:

# addgroup sudo

Til slutt legger du dockerbrukeren til sudogruppen:

# adduser docker sudo

Nå kan du følge trinn 4 i denne veiledningen for å fullføre konfigureringen av sudo.

På dette tidspunktet er du klar til å installere Docker-pakken. Merk at det strengt tatt ikke er nødvendig å ha en egen, sudo-kompetent dockerbruker for å installere og konfigurere Docker, men denne veiledningen følger denne konvensjonen.

Installer Docker-pakken med følgende kommando:

# apk add docker

Aktiver deretter Docker init-skriptet:

# rc-update add docker

Til slutt, start Docker-demonen:

# rc-service docker start

Du kan bekrefte at Docker kjører med denne kommandoen:

# docker info

Som forrige gang, gjenta denne Docker-installasjonsprosessen for hver server du distribuerte ved starten.

Initialiser en Docker-sverm med én ledernode og én arbeidernode

Med alt dette oppsettet behandlet, er du endelig klar til å lage Docker-svermen.

Lag en sverm og legg til en ledernode

Naviger tilbake til nettkonsollen til Docker Managerserveren din . Du vil konfigurere denne serveren som en managernode i svermen din. Hvis du valgte å opprette dockerbrukeren tidligere, logger du på med den kontoen i stedet for superbrukeren.

Skriv inn følgende kommando, men erstatt 192.0.2.1med den private (ikke den offentlige), IP-adressen Docker Managerserveren din ble tildelt:

$ docker swarm init --advertise-addr 192.0.2.1

Docker vil vise en kommando du kan utføre på andre servere i det private nettverket for å legge dem til som arbeidernoder til denne nye svermen. Lagre denne kommandoen.

Legg til en arbeidernode

Naviger nå til nettkonsollen til Docker Workerserveren din , logg på med dockerbrukeren hvis du opprettet den.

For å legge til denne serveren som en arbeidernode til svermen du nettopp opprettet, utfør kommandoen du lagret fra utdataene fra kommandoen for opprettelse av svermen. Det vil ligne følgende:

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

Docker vil gi ut om noden var i stand til å bli med i svermen. Hvis du støter på problemer med å legge til arbeidernoder til svermen, dobbeltsjekk din private nettverkskonfigurasjon og se denne veiledningen for feilsøking.

Hvis du distribuerte mer enn to servere i begynnelsen, kan du legge til resten som arbeidernoder til svermen din ved å bruke kommandoen ovenfor, og øke mengden ressurser som er tilgjengelig for applikasjonen din. Alternativt kan du legge til flere ledernoder, men det er utenfor denne veiledningen.

Distribuer Portainer med SSL for å administrere Docker-svermen din

På dette tidspunktet er Docker-svermen klar til bruk. Du kan imidlertid eventuelt starte en Portainer-stabel på managernoden i svermen din. Portainer tilbyr et praktisk webgrensesnitt for å administrere svermen din og nodene der.

Det er nå på tide å lage en brannmurgruppe for svermen din. Med mindre applikasjonen din spesifikt krever det, utsett bare porter på managernodene dine . Å avsløre porter på arbeidernodene uten nøye vurdering kan introdusere sårbarheter.

Naviger til grensesnittet for brannmuradministrasjon og opprett en ny brannmurgruppe. Søknaden din bør diktere hvilke porter som skal eksponeres, men du må i det minste eksponere port 9000for Portainer. Bruk denne brannmurgruppen på Docker Managerserveren.

Selv om det ikke er nødvendig, anbefales det på det sterkeste å sikre Portainer med SSL. Av hensyn til denne veiledningen vil du kun bruke et selvsignert OpenSSL-sertifikat, men du bør vurdere å bruke Let's Encrypt i produksjon.

Naviger til nettkonsollen til Docker Managerserveren, logg på med dockerbrukeren og bruk følgende kommandoer for å generere et selvsignert OpenSSL-sertifikat:

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

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

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:

Etter å ha modifisert denne Docker stack-konfigurasjonsfilen for å samsvare med kravene dine, kan du distribuere den:

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

For å bekrefte at Portainer fungerer, kjør følgende kommando etter å ha gitt Docker et minutt eller to på å distribuere stabelen:

$ docker ps

Du vil se to beholdere med bildene portainer/portainer:latestog portainer/agent:latest, som bekrefter at Portainer startet riktig.

Du kan nå konfigurere og administrere Docker-svermen din ved å besøke den offentlige IP-adressen til Docker Managerserveren din på porten 9000ved hjelp av HTTPS.


Slik sjekker du Hyper-V-beholdere på Windows 10 Insider

Slik sjekker du Hyper-V-beholdere på Windows 10 Insider

Microsoft har forklart i et nytt blogginnlegg hvordan Windows Insiders kan teste Hyper-V-beholdere på Windows 10, en ny virtualiseringsløsning som lar applikasjoner kjøre uten å påvirke resten av operativsystemet ditt.

Installer Rancher OS via iPXE

Installer Rancher OS via iPXE

Rancher OS er en veldig lett Linux-distribusjon bygget rundt Docker. Selve operativsystemet veier rundt 20 MB. Denne opplæringen vil få deg i gang med

På CoreOS, konfigurer ditt eget Docker-register

På CoreOS, konfigurer ditt eget Docker-register

Vi kjenner og elsker alle Docker, en plattform for å lage, administrere og distribuere applikasjonsbeholdere på tvers av flere maskiner. Docker Inc. tilbyr en tjeneste t

Installerer docker-compose på CoreOS

Installerer docker-compose på CoreOS

Denne artikkelen forklarer hvordan du installerer docker-compose på CoreOS. I CoreOS er /usr/-mappen uforanderlig, så standard /usr/local/bin-banen er utilgjengelig for

Installer Docker CE på Ubuntu 18.04

Installer Docker CE på Ubuntu 18.04

Innledning Docker er en applikasjon som lar oss distribuere programmer som kjøres som containere. Den ble skrevet på det populære programmeringsspråket Go

Lag en Docker Swarm på Alpine Linux 3.9.0

Lag en Docker Swarm på Alpine Linux 3.9.0

Introduksjon Denne guiden viser deg hvordan du oppretter og konfigurerer en Docker-sverm ved å bruke flere Alpine Linux 3.9.0-servere og Portainer. Vær oppmerksom på det

Distribuer en PHP-applikasjon ved å bruke Docker-compose

Distribuer en PHP-applikasjon ved å bruke Docker-compose

PHP-applikasjoner er vanligvis sammensatt av en webserver, et relasjonsdatabasesystem og selve språktolken. I denne opplæringen vil vi være leveragin

Lastbalanse med Docker

Lastbalanse med Docker

Når du kjører en nettapplikasjon, vil du vanligvis få mest mulig ut av ressursene dine uten å måtte konvertere programvaren til å bruke multithreading o

Distribuer en Node.js-applikasjon ved hjelp av Docker

Distribuer en Node.js-applikasjon ved hjelp av Docker

Denne artikkelen vil vise deg hvordan du distribuerer Node-applikasjonen din i en Docker-beholder. Merk: Denne opplæringen forutsetter at du har Docker installert og lest

Distribuer Kubernetes med Kubeadm på CentOS 7

Distribuer Kubernetes med Kubeadm på CentOS 7

Oversikt Denne artikkelen er ment å hjelpe deg med å få en Kubernetes-klynge i gang med kubeadm på kort tid. Denne veiledningen vil distribuere to servere på

Installere Docker CE på Debian 9

Installere Docker CE på Debian 9

Bruker du et annet system? Introduksjon Docker er en applikasjon som tillater distribusjon av programvare i virtuelle containere. Det ble skrevet i G

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

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

Forutsetninger Docker-motor 1.8+. Minimum 4 GB diskplass. Minimum 4 GB RAM. Trinn 1. Installer Docker For å installere SQL-Server må Docker mus

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

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

Bruker du et annet system? Innledning Docker Swarm gjør dine individuelle servere til en klynge av datamaskiner; lette skalering, høy tilgjengelighet og

Installer Rancher Server på RancherOS

Installer Rancher Server på RancherOS

Oversikt RancherOS er et utrolig lett operativsystem (bare ca. 60 MB) som kjører en system Docker-demon som PID 0 for å kjøre systemtjenester

Installer Rancher på Ubuntu 16.04

Installer Rancher på Ubuntu 16.04

Bruker du et annet system? Introduksjon Rancher er en åpen kildekode-plattform for å kjøre containere og bygge en privat containertjeneste. Rancher er base

Sett opp Sentry via Docker på Ubuntu 16.04

Sett opp Sentry via Docker på Ubuntu 16.04

Bruker du et annet system? Innledning Sentry er en åpen kildekode-løsning for feilsporing. Sentry sporer unntak og andre nyttige meldinger

Slik bruker du Docker: Opprett din første Docker-beholder

Slik bruker du Docker: Opprett din første Docker-beholder

Denne opplæringen forklarer det grunnleggende for å komme i gang med Docker. Jeg antar at du allerede har Docker installert. Trinnene i denne opplæringen vil fungere på en

Installere Docker på Ubuntu 14.04

Installere Docker på Ubuntu 14.04

Bruker du et annet system? Docker er en applikasjon som gjør det mulig å distribuere programmer som kjøres som containere. Det ble skrevet i det populære Go-programmet

Sikker distribusjon og administrering av LXC-beholdere på Ubuntu 14.04

Sikker distribusjon og administrering av LXC-beholdere på Ubuntu 14.04

LXC-beholdere (Linux-beholdere) er en operativsystemfunksjon i Linux som kan brukes til å kjøre flere isolerte Linux-systemer på en enkelt vert. Thes

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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer