Skapa en Docker Swarm på Alpine Linux 3.9.0

Introduktion

Den här guiden visar dig hur du skapar och konfigurerar en Docker-svärm med flera Alpine Linux 3.9.0-servrar och Portainer. Var medveten om att Vultr erbjuder en One-Click Docker-app som för närvarande stöder både CentOS 7 x64 och Ubuntu 16.04 x64.

Förutsättningar

För att börja behöver du minst två VC2-servrar som kör Alpine Linux 3.9.0. Inom din Docker-svärm kommer en av dessa servrar att fungera som ett manager nodegränssnitt med externa nätverk och delegera jobb till arbetarnoder. Den andra servern kommer då att fungera som ett worker node- exekverande jobb som delegerats till den av chefsnoden.

Observera att du kan starta fler än två servrar om din applikation kräver redundans och/eller mer datorkraft, och stegen i den här guiden kommer fortfarande att gälla.

Spridning

Besök Vultr- serverns distributionsgränssnitt .

Se till att Vultr Cloud (VC2)fliken är vald överst på sidan.

Du kan välja vilken plats som helst från Server Locationavsnittet, men alla servrar måste vara på samma plats , annars kommer det inte att vara möjligt att distribuera en Docker-svärm till dem.

Välj ISO Libraryfliken för Server Typeavsnittet och välj Alpine Linux 3.9.0 x86_64bilden.

Välj ett lämpligt alternativ från Server Sizeavsnittet. Den här guiden kommer att använda SSD-serverstorleken på 25 GB, men den kan vara otillräcklig för att uppfylla din applikations resurskrav. Även om Vultr gör det enkelt att uppgradera en serverstorlek efter att den redan har lanserats, bör du ändå noga överväga vilken serverstorlek din applikation behöver för att fungera optimalt.

I Additional Featuresavsnittet måste du välja Enable Private Networkingalternativet. Även om de andra alternativen inte krävs för att följa den här guiden, bör du överväga om vart och ett är vettigt i din ansökan.

Om du tidigare har aktiverat Multiple Private Networksalternativet på ditt konto måste du antingen välja ett befintligt eller skapa ett nytt privat nätverk för dina servrar. Om du inte har aktiverat det kan du ignorera det här avsnittet. För information om att manuellt konfigurera privata nätverk, se den här guiden .

Hoppa över Firewall Groupavsnittet tills vidare. Endast servern som fungerar som en chefsnod i Docker-svärmen kommer att behöva exponerade portar, och detta bör konfigureras efter serverinstallation.

Längst ner på sidan måste du ange en Server Qtyav minst två. Som nämnts tidigare kan du behöva mer än två servrar, men två är tillräckligt för att följa den här guiden.

Slutligen, i Server Hostname & Labelavsnittet, ange meningsfulla och minnesvärda värdnamn och etiketter för varje server. För syftet med denna guide kommer värdnamnet och etiketten för den första servern att vara docker-manageroch Docker Managerrespektive- och docker-workeroch Docker Workerför den andra.

Efter att ha dubbelkollat ​​alla dina konfigurationer kan du klicka på Deploy Nowknappen längst ner på sidan för att starta dina servrar.

Installera Alpine Linux 3.9.0 på servrarna

Eftersom du valde ett OS från Vultrs ISO-bibliotek, måste du manuellt installera och konfigurera Alpine Linux 3.9.0 på varje server.

Efter att ha gett Vultr en minut eller två på sig att tilldela dina servrar, klicka på more optionsikonen med tre punkter för Docker Managerservern på serverhanteringsgränssnittet och välj sedan View Consolealternativet.

Du bör omdirigeras till en konsol med en inloggningsprompt. Om inte, vänta ytterligare en minut tills Vultr har slutfört driftsättningen av dina servrar.

Vid den inloggningsprompten anger du rootsom användarnamn. Liveversionen av Alpine Linux 3.9.0 (vilket är vad dina servrar kör för närvarande) kräver inte att superanvändaren anger ett lösenord när han loggar in.

När du har loggat in på root-kontot kommer du att se ett välkomstmeddelande följt av en skalprompt som ser ut så här:

localhost:~# 

För att starta installationsprogrammet för Alpine Linux, skriv in följande kommando:

# setup-alpine

Välj först en lämplig tangentbordslayout. Denna guide kommer att använda uslayouten och varianten.

När du ställer in värdnamnet, välj samma värdnamn som du angav för den här servern under distributionen. Om du har följt den här guiden exakt bör värdnamnet vara docker-manager.

Två nätverksgränssnitt bör vara tillgängliga: eth0och eth1. Om du bara ser eth0betyder det att du inte har konfigurerat dina servrars privata nätverk korrekt. Initiera eth0med dhcpoch initiera eth1med den privata IP-adressen, nätmasken och gatewayen som denna server tilldelades under distributionen. Du kan komma åt dessa detaljer från inställningsgränssnittet på din server. Utför ingen manuell nätverkskonfiguration när du uppmanas att göra det.

Ange ett nytt lösenord för root-kontot och välj sedan en tidszon som är lämplig för den plats du valde att distribuera dessa servrar till.

Om du tänker använda en HTTP/FTP-proxy anger du dess URL, annars ställer du inte in en proxy-URL.

Välj en NTP-klient för att hantera systemklocksynkronisering. Denna guide kommer att använda busybox.

När du blir ombedd att använda en paketförvarsspegel, välj antingen en uttryckligen genom att ange dess nummer; upptäck och välj automatiskt den snabbaste genom att ange f; eller redigera förvarets konfigurationsfil manuellt genom att ange e, vilket inte rekommenderas om du inte är bekant med Alpine Linux. Denna guide kommer att använda den första spegeln.

Om du planerar att använda SSH för att komma åt dina servrar eller för att vara värd för ett SSH-baserat filsystem, välj en SSH-server att använda. Denna guide kommer att använda openssh.

När du uppmanas att använda en disk väljer du disk vdasom systyp.

Alpine Linux 3.9.0 bör nu installeras på din server. Upprepa denna process för alla andra servrar som du distribuerade tidigare, och se till att du ersätter värdnamnet och eth1nätverksgränssnittet med rätt värden .

Serverkonfiguration efter installation

Vid det här laget kör dina servrar fortfarande den levande ISO-versionen av Alpine Linux 3.9.0. För att starta från SSD-installationen, besök inställningsgränssnittet på din server, navigera till Custom ISOsidomenyn och klicka på Remove ISOknappen. Detta bör starta om servern. Om det inte gör det, starta om manuellt.

När servern har startat om, navigera tillbaka till webbkonsolen för servern Docker Manager.

Logga in på root-kontot med lösenordet du angav tidigare under installationsprocessen.

Aktivera community-paketförrådet genom att avkommentera den tredje raden för att /etc/apk/repositoriesanvända vi. Du kan aktivera kant- och testarkiven på liknande sätt, men de behöver inte följa den här guiden.

Synkronisera serverns lokala paketindex med fjärrarkivet du valde tidigare genom att ange följande skalkommando:

# apk update

Uppgradera sedan föråldrade paket:

# apk upgrade

Som tidigare, upprepa den här konfigurationsprocessen för varje server som du distribuerade tidigare.

Installera Docker på dina servrar

Innan du installerar själva Docker-paketet kanske du vill skapa en separat dockeranvändare. Du kan göra detta med följande kommando:

# adduser docker

Obs: Den här nya användaren och alla användare som läggs till i den nya dockergruppen kommer att ha root-privilegier när Docker-paketet har installerats. Se följande problem från Moby Github-förvaret:

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.

Om du vill ge sudo-tillstånd till dockeranvändaren, installera först sudopaketet:

# apk add sudo

Skapa sedan en sudogrupp:

# addgroup sudo

Lägg slutligen till dockeranvändaren i sudogruppen:

# adduser docker sudo

Nu kan du följa steg 4 i den här guiden för att slutföra konfigureringen av sudo.

Vid det här laget är du redo att installera Docker-paketet. Observera att det inte är strikt nödvändigt att ha en separat, sudo-kapabel dockeranvändare för att installera och konfigurera Docker, men den här guiden följer den konventionen.

Installera Docker-paketet med följande kommando:

# apk add docker

Aktivera sedan Docker init-skriptet:

# rc-update add docker

Slutligen, starta Docker-demonen:

# rc-service docker start

Du kan verifiera att Docker körs med detta kommando:

# docker info

Som förra gången, upprepa denna Docker-installationsprocessen för varje server du distribuerade i början.

Initiera en Docker-svärm med en chefsnod och en arbetarnod

Med all den installationen hanterad är du äntligen redo att skapa Docker-svärmen.

Skapa en svärm och lägg till en chefsnod

Navigera tillbaka till din Docker Managerservers webbkonsol. Du kommer att konfigurera den här servern som en förvaltarnod i din svärm. Om du valde att skapa dockeranvändaren tidigare, logga in med det kontot istället för superanvändaren.

Ange följande kommando, men ersätt 192.0.2.1med den privata (inte den offentliga), IP-adressen som din Docker Managerserver tilldelades:

$ docker swarm init --advertise-addr 192.0.2.1

Docker kommer att visa ett kommando som du kan köra på andra servrar i det privata nätverket för att lägga till dem som arbetarnoder till denna nya svärm. Spara detta kommando.

Lägg till en arbetarnod

Navigera nu till webbkonsolen på din Docker Workerserver och logga in med dockeranvändaren om du skapade den.

För att lägga till den här servern som en arbetarnod till svärmen du just skapade, kör kommandot du sparade från utgången av kommandot för att skapa svärm. Det kommer att se ut som följande:

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

Docker kommer att visa om noden kunde ansluta sig till svärmen. Om du stöter på problem med att lägga till arbetarnoder till svärmen, dubbelkolla din privata nätverkskonfiguration och se den här guiden för felsökning.

Om du distribuerade fler än två servrar i början kan du lägga till resten som arbetarnoder till din svärm med kommandot ovan, vilket ökar mängden resurser som är tillgängliga för din applikation. Alternativt kan du lägga till ytterligare chefsnoder, men det ligger utanför den här guidens räckvidd.

Distribuera Portainer med SSL för att hantera din Docker-svärm

Vid det här laget är din Docker-svärm redo att användas. Du kan dock valfritt starta en Portainer-stack på managernoden i din svärm. Portainer erbjuder ett bekvämt webbgränssnitt för att hantera din svärm och noderna däri.

Det är nu dags att skapa en brandväggsgrupp för din svärm. Om inte din applikation specifikt kräver det, exponera bara portar på dina managernoder . Att exponera portar på dina arbetarnoder utan noggrant övervägande kan introducera sårbarheter.

Navigera till gränssnittet för brandväggshantering och skapa en ny brandväggsgrupp. Din ansökan bör diktera vilka portar som ska exponeras, men du måste åtminstone exponera port 9000för Portainer. Använd denna brandväggsgrupp på Docker Managerservern.

Även om det inte är nödvändigt, rekommenderas starkt att säkra Portainer med SSL. För den här guidens skull kommer du bara att använda ett självsignerat OpenSSL-certifikat, men du bör överväga att använda Let's Encrypt i produktionen.

Navigera till Docker Managerserverns webbkonsol, logga in med dockeranvändaren och använd följande kommandon för att generera ett självsignerat 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

Skapa en ny fil, ~/portainer-agent-stack.yml, med följande innehåll:

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 att ha modifierat denna Docker-stackkonfigurationsfil för att överensstämma med dina krav, kan du distribuera den:

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

För att verifiera att Portainer fungerar, kör följande kommando efter att ha gett Docker en minut eller två för att distribuera stacken:

$ docker ps

Du kommer att se två behållare med bilderna portainer/portainer:latestoch portainer/agent:latest, som verifierar att Portainer startade korrekt.

Du kan nu konfigurera och hantera din Docker-svärm genom att besöka den offentliga IP-adressen för din Docker Managerserver på porten med 9000hjälp av HTTPS.


Så här kollar du Hyper-V-behållare på Windows 10 Insider

Så här kollar du Hyper-V-behållare på Windows 10 Insider

Microsoft har i ett nytt blogginlägg förklarat hur Windows Insiders kan testa Hyper-V-behållare på Windows 10, en ny virtualiseringslösning för att tillåta applikationer att köras utan att påverka resten av ditt operativsystem.

Hur man installerar Harbor på CentOS 7

Hur man installerar Harbor på CentOS 7

Harbor är en registerserver i företagsklass med öppen källkod som lagrar och distribuerar Docker-avbildningar. Harbor utökar öppen källkod Docker Distribution b

Installera Rancher OS via iPXE

Installera Rancher OS via iPXE

Rancher OS är en mycket lätt Linux-distribution byggd kring Docker. Själva operativsystemet väger cirka 20 MB. Denna handledning kommer att få dig igång

På CoreOS, ställ in ditt eget Docker-register

På CoreOS, ställ in ditt eget Docker-register

Vi känner alla till och älskar Docker, en plattform för att skapa, hantera och distribuera applikationsbehållare över flera maskiner. Docker Inc. tillhandahåller en tjänst t

Installerar docker-compose på CoreOS

Installerar docker-compose på CoreOS

Den här artikeln förklarar hur du installerar docker-compose på CoreOS. I CoreOS är mappen /usr/ oföränderlig så standardsökvägen /usr/local/bin är inte tillgänglig för

Installera Rancher på CentOS 7

Installera Rancher på CentOS 7

Använder du ett annat system? Introduktion Rancher är en öppen källkodsplattform för att köra containrar och bygga en privat containertjänst. Rancher är basen

Installera Docker CE på Ubuntu 18.04

Installera Docker CE på Ubuntu 18.04

Introduktion Docker är en applikation som låter oss distribuera program som körs som behållare. Den skrevs på det populära programmeringsspråket Go

Skapa en Docker Swarm på Alpine Linux 3.9.0

Skapa en Docker Swarm på Alpine Linux 3.9.0

Inledning Den här guiden visar hur du skapar och konfigurerar en Docker-svärm med flera Alpine Linux 3.9.0-servrar och Portainer. Var medveten om att

Distribuera en PHP-applikation med Docker-compose

Distribuera en PHP-applikation med Docker-compose

PHP-applikationer är vanligtvis sammansatta av en webbserver, ett relationsdatabassystem och själva språktolken. I den här handledningen kommer vi att vara hävstångsmässigt

Lastbalans med Docker

Lastbalans med Docker

När du kör en webbapplikation vill du normalt få ut det mesta av dina resurser utan att behöva konvertera din programvara till att använda multithreading o

Distribuera en Node.js-applikation med Docker

Distribuera en Node.js-applikation med Docker

Den här artikeln visar dig hur du distribuerar din Node-applikation i en Docker-behållare. Obs: Denna handledning förutsätter att du har Docker installerat och läst

Installerar Docker CE på CentOS 7

Installerar Docker CE på CentOS 7

Docker containerteknik låter dig köra applikationer i en specifik och isolerad miljö. Docker Community Edition (CE) är det nya namnet på fre

Distribuera Kubernetes med Kubeadm på CentOS 7

Distribuera Kubernetes med Kubeadm på CentOS 7

Översikt Den här artikeln är tänkt att hjälpa dig få igång ett Kubernetes-kluster med kubeadm på nolltid. Den här guiden kommer att distribuera två servrar, på

Installera Docker på CentOS 7

Installera Docker på CentOS 7

Använder du ett annat system? Docker är en applikation som möjliggör distribution av programvara i virtuella behållare. Det skrevs i Go-programmet

Installerar Docker CE på Debian 9

Installerar Docker CE på Debian 9

Använder du ett annat system? Introduktion Docker är en applikation som möjliggör distribution av programvara i virtuella behållare. Det skrevs i G

Kom igång med SQL Server 2017 (MS-SQL) på CentOS 7 med Docker

Kom igång med SQL Server 2017 (MS-SQL) på CentOS 7 med Docker

Förutsättningar Docker-motor 1.8+. Minst 4 GB diskutrymme. Minst 4 GB RAM. Steg 1. Installera Docker För att installera SQL-Server måste Docker mus

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

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

Använder du ett annat system? Inledning Docker Swarm förvandlar dina individuella servrar till ett kluster av datorer; underlättar skalning, hög tillgänglighet och

Två Docker grafiska hanteringsverktyg: DockerUI och Shipyard

Två Docker grafiska hanteringsverktyg: DockerUI och Shipyard

Med hjälp av Vultr Docker-applikationen kan du enkelt distribuera Docker på din Vultr-serverinstans. Under tiden kan du underlätta Docker-hanteringsuppgiften

Installera Rancher Server på RancherOS

Installera Rancher Server på RancherOS

Översikt RancherOS är ett otroligt lätt operativsystem (endast cirka 60 MB) som kör en system Docker-demon som PID 0 för att köra systemtjänster

Komma igång med Kubernetes på CentOS 7

Komma igång med Kubernetes på CentOS 7

Kubernetes är en öppen källkodsplattform som utvecklats av Google för att hantera containeriserade applikationer över ett kluster av servrar. Den bygger på ett decennium och

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer