Maak een Docker Swarm op Alpine Linux 3.9.0

Invoering

Deze gids laat u zien hoe u een Docker-zwerm maakt en configureert met behulp van meerdere Alpine Linux 3.9.0-servers en Portainer. Houd er rekening mee dat Vultr een Docker-app met één klik biedt die momenteel zowel CentOS 7 x64 als Ubuntu 16.04 x64 ondersteunt.

Vereisten

Om te beginnen heb je minimaal twee VC2-servers nodig waarop Alpine Linux 3.9.0 draait. Binnen uw Docker-zwerm fungeert een van deze servers als een manager nodeinterface met externe netwerken en delegeert taken naar werkknooppunten. De andere server zal dan fungeren als worker node- het uitvoeren van taken die door de manager node zijn gedelegeerd.

Merk op dat u meer dan twee servers kunt starten als uw applicatie redundantie en / of meer rekenkracht vereist, en de stappen in deze handleiding zijn nog steeds van toepassing.

Implementatie

Bezoek de Vultr- serverimplementatie-interface .

Zorg ervoor dat het Vultr Cloud (VC2)tabblad bovenaan de pagina is geselecteerd.

U kunt elke locatie in de Server Locationsectie selecteren, maar alle servers moeten zich op dezelfde locatie bevinden , anders is het niet mogelijk om er een Docker-zwerm op in te zetten.

Selecteer het ISO Librarytabblad van de Server Typesectie en kies de Alpine Linux 3.9.0 x86_64afbeelding.

Selecteer een geschikte optie in de Server Sizesectie. In deze handleiding wordt de grootte van de SSD-server van 25 GB gebruikt, maar dit kan onvoldoende zijn om aan de bronnenvereisten van uw toepassing te voldoen. Hoewel Vultr het gemakkelijk maakt om de grootte van een server te upgraden nadat deze al is gestart, moet u nog steeds zorgvuldig overwegen welke servergrootte uw toepassing nodig heeft om optimaal te presteren.

In de Additional Featuressectie moet u de Enable Private Networkingoptie selecteren. Hoewel de andere opties niet vereist zijn om deze gids te volgen, moet u overwegen of ze allemaal wel of niet logisch zijn in de context van uw toepassing.

Als je de Multiple Private Networksoptie eerder in je account hebt ingeschakeld , moet je een bestaand netwerk selecteren of een nieuw privénetwerk voor je servers maken. Als je dit niet hebt ingeschakeld, kun je deze sectie negeren. Raadpleeg deze handleiding voor informatie over het handmatig configureren van privé-netwerken .

Sla de Firewall Groupsectie voorlopig over. Alleen de server die fungeert als een managementknooppunt in de Docker-zwerm, heeft blootgestelde poorten nodig en dit moet worden geconfigureerd na de implementatie van de server.

Onderaan de pagina moet u Server Qtyminimaal twee invoeren . Zoals eerder vermeld, hebt u mogelijk meer dan twee servers nodig, maar twee zijn voldoende om deze handleiding te volgen.

Server Hostname & LabelVoer ten slotte in de sectie zinvolle en gedenkwaardige hostnamen en labels in voor elke server. Ten behoeve van deze handleiding de hostnaam en label van de eerste server docker-manageren Docker Manager, respectively- en docker-workeren Docker Workerde tweede resp.

Nadat u al uw configuraties dubbel heeft gecontroleerd, kunt u vervolgens op de Deploy Nowknop onderaan de pagina klikken om uw servers te starten.

Installeer Alpine Linux 3.9.0 op de servers

Omdat je een besturingssysteem hebt gekozen uit de ISO-bibliotheek van Vultr, moet je Alpine Linux 3.9.0 handmatig installeren en configureren op elke server.

Nadat u Vultr een minuut of twee de tijd heeft gegeven om uw servers toe te wijzen, klikt u op het drievoudige puntpictogram more optionsvoor de Docker Managerserver op de serverbeheerinterface en kiest u vervolgens de View Consoleoptie.

U zou moeten worden omgeleid naar een console met een aanmeldingsprompt. Zo niet, wacht dan nog een minuut totdat Vultr klaar is met het implementeren van uw servers.

Voer bij die aanmeldingsprompt rootde gebruikersnaam in. Voor de live versie van Alpine Linux 3.9.0 (dat is wat uw servers momenteel draaien) hoeft de superuser geen wachtwoord in te voeren bij het inloggen.

Nadat u zich met succes hebt aangemeld bij het root-account, ziet u een welkomstbericht gevolgd door een shell-prompt die er als volgt uitziet:

localhost:~# 

Voer het volgende commando in om het Alpine Linux-installatieprogramma te starten:

# setup-alpine

Kies eerst een geschikte toetsenbordindeling. Deze gids gebruikt de uslay-out en variant.

Kies bij het instellen van de hostnaam dezelfde hostnaam die u tijdens de implementatie voor deze server hebt ingesteld. Als je deze gids precies hebt gevolgd, zou de hostnaam moeten zijn docker-manager.

Er moeten twee netwerkinterfaces beschikbaar zijn: eth0en eth1. Als u alleen ziet eth0, betekent dit dat u het privé-netwerk van uw servers niet correct heeft geconfigureerd. Initialiseer eth0met dhcpen initialiseer eth1met het privé-IP-adres, netmask en de gateway die tijdens de implementatie aan deze server is toegewezen. U hebt toegang tot deze details via de instellingeninterface van uw server. Voer desgevraagd geen handmatige netwerkconfiguratie uit.

Voer een nieuw wachtwoord in voor het root-account en selecteer vervolgens een tijdzone die geschikt is voor de locatie waarop u deze servers wilt implementeren.

Als u van plan bent een HTTP / FTP-proxy te gebruiken, voer dan de URL in, anders stelt u geen proxy-URL in.

Kies een NTP-client om de synchronisatie van de systeemklok te beheren. Deze gids zal gebruiken busybox.

Wanneer u wordt gevraagd om een ​​pakketrepository mirror om te gebruiken, kiest u er een expliciet door het nummer in te voeren; automatisch de snelste detecteren en selecteren door in te voeren f; of bewerk het configuratiebestand van de repository handmatig door het in te voeren e, wat niet wordt aanbevolen, tenzij je bekend bent met Alpine Linux. Deze gids gebruikt de eerste spiegel.

Als u van plan bent SSH te gebruiken om toegang te krijgen tot uw servers of om een ​​op SSH gebaseerd bestandssysteem te hosten, selecteer dan een SSH-server die u wilt gebruiken. Deze gids zal gebruiken openssh.

Kies schijf vdaals systype wanneer u wordt gevraagd om een ​​schijf die u wilt gebruiken .

Alpine Linux 3.9.0 zou nu op uw server moeten zijn geïnstalleerd. Herhaal dit proces voor alle andere servers die u eerder hebt geïmplementeerd, en zorg ervoor dat u de juiste waarden vervangt voor hostnaam en de eth1netwerkinterface.

Serverconfiguratie na installatie

Op dit moment gebruiken uw servers nog steeds de live ISO-versie van Alpine Linux 3.9.0. Om op te starten vanaf de SSD-installatie, gaat u naar de instellingeninterface van uw server, navigeert u naar het Custom ISOzijmenu-item en klikt u op de Remove ISOknop. Dit zou de server opnieuw moeten opstarten. Als dit niet het geval is, start u handmatig opnieuw op.

Zodra de server opnieuw is opgestart, navigeert u terug naar de webconsole voor de server Docker Manager.

Log in op het root-account met het wachtwoord dat u eerder tijdens het installatieproces hebt ingesteld.

Schakel de opslagplaats van het gemeenschapspakket in door de derde regel van het /etc/apk/repositoriesgebruik ongedaan te maken vi. U kunt de edge- en testrepository's op een vergelijkbare manier inschakelen, maar ze zijn niet verplicht om deze handleiding te volgen.

Synchroniseer de lokale pakketindex van de server met de externe repository die u eerder hebt geselecteerd door de volgende shell-opdracht in te voeren:

# apk update

Upgrade dan verouderde pakketten:

# apk upgrade

Herhaal zoals eerder dit configuratieproces voor elke server die u eerder hebt geïmplementeerd.

Installeer Docker op uw servers

Voordat u het Docker-pakket zelf installeert, wilt u misschien een afzonderlijke dockergebruiker maken. U kunt dit doen met de volgende opdracht:

# adduser docker

Opmerking: deze nieuwe gebruiker en alle gebruikers die aan de nieuwe dockergroep zijn toegevoegd , zullen rootrechten hebben zodra het Docker-pakket is geïnstalleerd. Zie het volgende probleem uit de Moby Github-repository:

Vanwege de --privilegedin docker is iedereen die is toegevoegd aan de 'docker'-groep root-equivalent. Iedereen in de docker-groep heeft een achterdeur rond het beleid voor escalatie van bevoegdheden en audits op het systeem.

Dit is iets anders dan dat iemand sudo naar root kan uitvoeren, waar hij beleid voor heeft, en controle op heeft toegepast.

Als je sudo toestemming wilt geven aan de dockergebruiker, installeer dan eerst het sudopakket:

# apk add sudo

Maak dan een sudogroep aan:

# addgroup sudo

Voeg ten slotte de dockergebruiker toe aan de sudogroep:

# adduser docker sudo

Nu kunt u stap 4 van deze handleiding volgen om het configureren van sudo te voltooien.

Op dit punt bent u klaar om het Docker-pakket te installeren. Merk op dat het niet strikt noodzakelijk is om een ​​aparte, sudo-capabele dockergebruiker te hebben om Docker te installeren en configureren, maar deze gids volgt die conventie.

Installeer het Docker-pakket met de volgende opdracht:

# apk add docker

Schakel vervolgens het Docker init-script in:

# rc-update add docker

Start ten slotte de Docker-daemon:

# rc-service docker start

U kunt controleren of Docker wordt uitgevoerd met deze opdracht:

# docker info

Herhaal, net als de vorige keer, dit Docker-installatieproces voor elke server die u aan het begin hebt geïmplementeerd.

Initialiseer een Docker-zwerm met één manager-knooppunt en één werkerknooppunt

Met al die instellingen afgehandeld, ben je eindelijk klaar om de Docker-zwerm te maken.

Maak een zwerm en voeg een manager-knooppunt toe

Navigeer terug naar de webconsole van uw Docker Managerserver. U configureert deze server als een manager-knooppunt in uw zwerm. Als je ervoor hebt gekozen om de dockergebruiker eerder te maken, log dan in met dat account in plaats van met de superuser.

Voer de volgende opdracht in, maar vervang 192.0.2.1door het privé (niet het openbare) IP-adres dat aan uw Docker Managerserver is toegewezen:

$ docker swarm init --advertise-addr 192.0.2.1

Docker geeft een opdracht weer die u op andere servers in het particuliere netwerk kunt uitvoeren om ze als werkknooppunten aan deze nieuwe zwerm toe te voegen. Bewaar deze opdracht.

Voeg een werkknooppunt toe

Navigeer nu naar de webconsole van uw Docker Workerserver en log in met de dockergebruiker als u deze heeft gemaakt.

Om deze server als werkknooppunt toe te voegen aan de zojuist gemaakte zwerm, voert u de opdracht uit die u hebt opgeslagen vanaf de uitvoer van de opdracht voor het maken van zwermen. Het ziet er ongeveer als volgt uit:

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

Docker zal uitvoeren of het knooppunt zich bij de zwerm kon voegen. Als u problemen ondervindt bij het toevoegen van werkknooppunten aan de zwerm, controleer dan uw privé-netwerkconfiguratie en raadpleeg deze handleiding voor probleemoplossing.

Als u in het begin meer dan twee servers heeft geïmplementeerd, kunt u de rest als werkknooppunten aan uw zwerm toevoegen met behulp van de bovenstaande opdracht, waardoor de hoeveelheid beschikbare middelen voor uw toepassing toeneemt. Als alternatief kunt u extra manager-knooppunten toevoegen, maar dat valt buiten het bestek van deze handleiding.

Implementeer Portainer met SSL om uw Docker-zwerm te beheren

Op dit punt is uw Docker-zwerm klaar voor gebruik. U kunt echter optioneel een Portainer-stapel starten op het manager-knooppunt in uw zwerm. Portainer biedt een handige webinterface voor het beheer van uw zwerm en de knooppunten daarin.

Het is nu tijd om een ​​firewallgroep voor je zwerm te maken. Tenzij uw toepassing dit specifiek vereist, stelt u alleen poorten bloot op uw manager-knooppunten . Het blootstellen van poorten op uw werkknooppunten zonder zorgvuldige afweging kan kwetsbaarheden veroorzaken.

Navigeer naar de interface voor firewallbeheer en maak een nieuwe firewallgroep aan. Uw toepassing moet bepalen welke poorten moeten worden weergegeven, maar u moet op zijn minst een poort 9000voor Portainer vrijgeven. Pas deze firewallgroep toe op de Docker Managerserver.

Hoewel het niet vereist is, wordt het sterk aanbevolen om Portainer met SSL te beveiligen. In het belang van deze handleiding gebruikt u alleen een zelfondertekend OpenSSL-certificaat, maar u zou moeten overwegen om Let's Encrypt in productie te gebruiken.

Navigeer naar de webconsole van de Docker Managerserver, log in met de dockergebruiker en gebruik de volgende opdrachten om een ​​zelfondertekend OpenSSL-certificaat te genereren:

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

Maak een nieuw bestand aan ~/portainer-agent-stack.ymlmet de volgende inhoud:

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:

Nadat u dit configuratiebestand van de Docker-stack hebt aangepast aan uw vereisten, kunt u het implementeren:

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

Om te controleren of Portainer werkt, voert u de volgende opdracht uit nadat u Docker een minuut of twee de tijd heeft gegeven om de stapel te implementeren:

$ docker ps

U ziet twee containers met de afbeeldingen portainer/portainer:latesten portainer/agent:latestcontroleren of Portainer correct is gestart.

U kunt nu uw Docker-zwerm configureren en beheren door met HTTPS het openbare IP-adres van uw Docker Managerserver op de poort te bezoeken 9000.



Leave a Comment

Installeer Rancher Server op RancherOS

Installeer Rancher Server op RancherOS

Overzicht RancherOS is een ongelooflijk lichtgewicht besturingssysteem (slechts ongeveer 60 MB) dat een systeem Docker-daemon draait als PID 0 voor het uitvoeren van systeemservices

Harbor installeren op CentOS 7

Harbor installeren op CentOS 7

Harbor is een open-source registerserver van ondernemingsklasse die Docker-images opslaat en distribueert. Harbor breidt de open source Docker Distribution uit b

Docker installeren op Ubuntu 14.04

Docker installeren op Ubuntu 14.04

Gebruikt u een ander systeem? Docker is een applicatie waarmee programmas kunnen worden geïmplementeerd die als containers worden uitgevoerd. Het is geschreven in het populaire Go-programma

Implementeer een Node.js-applicatie met Docker

Implementeer een Node.js-applicatie met Docker

Dit artikel laat zien hoe u uw Node-toepassing kunt implementeren in een Docker-container. Opmerking: in deze zelfstudie wordt ervan uitgegaan dat Docker is geïnstalleerd en gelezen

Installeer Rancher op Ubuntu 16.04

Installeer Rancher op Ubuntu 16.04

Gebruikt u een ander systeem? Introductie Rancher is een open source platform voor het draaien van containers en het bouwen van een eigen containerservice. Rancher is basis

Implementeer Kubernetes met Kubeadm op CentOS 7

Implementeer Kubernetes met Kubeadm op CentOS 7

Overzicht Dit artikel is bedoeld om u te helpen in een mum van tijd een Kubernetes-cluster aan de praat te krijgen met kubeadm. In deze handleiding worden twee servers geïmplementeerd

Docker-compose installeren op CoreOS

Docker-compose installeren op CoreOS

In dit artikel wordt uitgelegd hoe u docker-compose installeert op CoreOS. In CoreOS is de map / usr / onveranderlijk, dus het standaard / usr / local / bin-pad is niet beschikbaar voor

Implementeer en beheer LXC-containers veilig op Ubuntu 14.04

Implementeer en beheer LXC-containers veilig op Ubuntu 14.04

LXC-containers (Linux-containers) zijn een besturingssysteemfunctie in Linux die kan worden gebruikt om meerdere geïsoleerde Linux-systemen op één host uit te voeren. Thes

Installeer Docker CE op Ubuntu 18.04

Installeer Docker CE op Ubuntu 18.04

Inleiding Docker is een applicatie waarmee we programmas kunnen implementeren die als containers worden uitgevoerd. Het is geschreven in de populaire programmeertaal Go

Docker installeren op CentOS 7

Docker installeren op CentOS 7

Gebruikt u een ander systeem? Docker is een applicatie waarmee software kan worden geïmplementeerd in virtuele containers. Het is geschreven in het Go-programma

Aan de slag met Kubernetes op CentOS 7

Aan de slag met Kubernetes op CentOS 7

Kubernetes is een open-sourceplatform dat is ontwikkeld door Google voor het beheren van container-apps op een cluster van servers. Het bouwt voort op een decennium en

Stel Sentry in via Docker op Ubuntu 16.04

Stel Sentry in via Docker op Ubuntu 16.04

Gebruikt u een ander systeem? Introductie Sentry is een open source-oplossing voor het volgen van fouten. Sentry houdt uitzonderingen en andere nuttige berichten bij

Sticky Session With Docker Swarm (CE) op Debian 9

Sticky Session With Docker Swarm (CE) op Debian 9

Gebruikt u een ander systeem? Inleiding Docker Swarm verandert uw individuele servers in een cluster van computers; het vergemakkelijken van schaalvergroting, hoge beschikbaarheid en

Hoe Docker te gebruiken: uw eerste Docker-container maken

Hoe Docker te gebruiken: uw eerste Docker-container maken

Deze tutorial legt de basisprincipes van het starten met Docker uit. Ik neem aan dat Docker al is geïnstalleerd. Stappen in deze tutorial werken op een

Load Balance met Docker

Load Balance met Docker

Wanneer u een webtoepassing uitvoert, wilt u normaal gesproken het meeste uit uw bronnen halen zonder dat u uw software hoeft te converteren om multithreading o te gebruiken

Docker CE installeren op CentOS 7

Docker CE installeren op CentOS 7

Dankzij Docker-containertechnologie kunt u applicaties uitvoeren in een specifieke en geïsoleerde omgeving. Docker Community Edition (CE) is de nieuwe naam voor de fre

Stel op CoreOS uw eigen Docker-register in

Stel op CoreOS uw eigen Docker-register in

We kennen en houden allemaal van Docker, een platform voor het maken, beheren en distribueren van applicatiecontainers over meerdere machines. Docker Inc. biedt een service t

Ga aan de slag met SQL Server 2017 (MS-SQL) op CentOS 7 met Docker

Ga aan de slag met SQL Server 2017 (MS-SQL) op CentOS 7 met Docker

Vereisten Docker-engine 1.8+. Minimaal 4 GB schijfruimte. Minimaal 4 GB RAM. Stap 1. Docker installeren Om SQL-Server te installeren, Docker mus

Docker CE installeren op Debian 9

Docker CE installeren op Debian 9

Gebruikt u een ander systeem? Inleiding Docker is een applicatie waarmee software kan worden geïmplementeerd in virtuele containers. Het stond in de G

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.