Crea uno sciame Docker su Alpine Linux 3.9.0

introduzione

Questa guida ti mostrerà come creare e configurare uno sciame Docker utilizzando più server Alpine Linux 3.9.0 e Portainer. Tieni presente che Vultr offre un'app Docker con un clic che attualmente supporta sia CentOS 7 x64 che Ubuntu 16.04 x64.

Prerequisiti

Per iniziare, avrai bisogno di almeno due server VC2 con Alpine Linux 3.9.0. All'interno dello sciame Docker, uno di questi server fungerà da manager node- interfacciamento con reti esterne e delega dei lavori ai nodi di lavoro. L'altro server fungerà quindi da worker node- processi in esecuzione delegati ad esso dal nodo gestore.

Si noti che è possibile avviare più di due server se l'applicazione richiede ridondanza e / o più potenza di elaborazione e saranno comunque applicati i passaggi forniti in questa guida.

Distribuzione

Visita l' interfaccia di distribuzione del server Vultr .

Assicurarsi che la Vultr Cloud (VC2)scheda sia selezionata nella parte superiore della pagina.

È possibile selezionare qualsiasi posizione dalla Server Locationsezione, tuttavia tutti i server devono trovarsi nella stessa posizione , altrimenti non sarà possibile distribuire uno sciame Docker su di essi.

Seleziona la ISO Libraryscheda della Server Typesezione e scegli l' Alpine Linux 3.9.0 x86_64immagine.

Seleziona un'opzione appropriata dalla Server Sizesezione. Questa guida utilizzerà le dimensioni del server SSD da 25 GB, ma potrebbe non essere sufficiente per soddisfare i requisiti delle risorse dell'applicazione. Mentre Vultr semplifica l'aggiornamento delle dimensioni di un server dopo che è già stato avviato, dovresti comunque considerare attentamente le dimensioni del server che l'applicazione deve eseguire in modo ottimale.

Nella Additional Featuressezione, è necessario selezionare l' Enable Private Networkingopzione. Sebbene le altre opzioni non siano necessarie per seguire questa guida, è necessario considerare se ognuna di esse ha senso nel contesto dell'applicazione.

Se in precedenza hai abilitato l' Multiple Private Networksopzione sul tuo account, dovrai quindi selezionare una esistente o creare una nuova rete privata per i tuoi server. Se non lo hai abilitato, puoi ignorare questa sezione. Per informazioni sulla configurazione manuale delle reti private, consultare questa guida .

Salta la Firewall Groupsezione per ora. Solo il server che funge da nodo gestore nello sciame Docker avrà bisogno di porte esposte e questo dovrebbe essere configurato dopo la distribuzione del server.

Nella parte inferiore della pagina, devi inserire un Server Qtydi almeno due. Come accennato in precedenza, potrebbero essere necessari più di due server, ma due sono sufficienti per seguire questa guida.

Infine, nella Server Hostname & Labelsezione, inserisci nomi host ed etichette significativi e memorabili per ciascun server. Ai fini di questa guida, il nome host e l'etichetta del primo server saranno docker-managere Docker Manager, rispettivamente, e docker-workere Docker Workerper il secondo, rispettivamente.

Dopo aver ricontrollato tutte le configurazioni, è quindi possibile fare clic sul Deploy Nowpulsante nella parte inferiore della pagina per avviare i server.

Installa Alpine Linux 3.9.0 sui server

Poiché hai scelto un sistema operativo dalla libreria ISO di Vultr, dovrai installare e configurare manualmente Alpine Linux 3.9.0 su ciascun server.

Dopo aver concesso a Vultr un minuto o due per allocare i server, fai clic more optionssull'icona a tre punti per il Docker Managerserver sull'interfaccia di gestione del server , quindi scegli l' View Consoleopzione.

Dovresti essere reindirizzato a una console con una richiesta di accesso. In caso contrario, attendere un altro minuto affinché Vultr finisca di distribuire i server.

Alla richiesta di accesso, immettere rootcome nome utente. La versione live di Alpine Linux 3.9.0 (che è ciò che i server sono attualmente in esecuzione) non richiede al superutente di inserire una password durante l'accesso.

Una volta effettuato l'accesso all'account root, verrà visualizzato un messaggio di benvenuto seguito da un prompt della shell simile al seguente:

localhost:~# 

Per avviare il programma di installazione di Alpine Linux, immettere il seguente comando:

# setup-alpine

Innanzitutto, scegli un layout di tastiera appropriato. Questa guida utilizzerà il uslayout e la variante.

Quando si imposta il nome host, scegliere lo stesso nome host impostato per questo server durante la distribuzione. Se hai seguito esattamente questa guida, dovrebbe essere il nome host docker-manager.

Dovrebbero essere disponibili due interfacce di rete: eth0e eth1. Se vedi solo eth0, significa che non hai configurato correttamente la rete privata dei tuoi server. Inizializza eth0utilizzando dhcpe inizializza eth1utilizzando l'indirizzo IP privato, la maschera di rete e il gateway assegnati a questo server durante la distribuzione. Puoi accedere a questi dettagli dall'interfaccia delle impostazioni del tuo server. Quando richiesto, non eseguire alcuna configurazione manuale della rete.

Immettere una nuova password per l'account root, quindi selezionare un fuso orario appropriato per la posizione in cui si è scelto di distribuire questi server.

Se si intende utilizzare un proxy HTTP / FTP, immettere il relativo URL, altrimenti non impostare un URL proxy.

Scegli un client NTP per gestire la sincronizzazione dell'orologio di sistema. Questa guida utilizzerà busybox.

Quando viene richiesto di utilizzare un mirror del repository di pacchetti, sceglierne uno esplicitamente inserendone il numero; rileva e seleziona automaticamente quello più veloce inserendo f; o modificare manualmente il file di configurazione del repository inserendo e, che non è raccomandato a meno che non si abbia familiarità con Alpine Linux. Questa guida utilizzerà il primo mirror.

Se si prevede di utilizzare SSH per accedere ai propri server o per ospitare un file system basato su SSH, selezionare un server SSH da utilizzare. Questa guida utilizzerà openssh.

Quando viene richiesto l'utilizzo di un disco, selezionare il disco vdacome systipo.

Alpine Linux 3.9.0 ora dovrebbe essere installato sul tuo server. Ripetere questo processo per tutti gli altri server distribuiti in precedenza, assicurandosi di sostituire i valori corretti per nome host e eth1interfaccia di rete.

Configurazione del server post-installazione

A questo punto, i tuoi server eseguono ancora la versione ISO live di Alpine Linux 3.9.0. Per eseguire l'avvio dall'installazione SSD, visitare l'interfaccia delle impostazioni del server, accedere alla Custom ISOvoce del menu laterale e fare clic sul Remove ISOpulsante. Questo dovrebbe riavviare il server. In caso contrario, riavviare manualmente.

Una volta terminato il riavvio del server, tornare alla console Web per il server Docker Manager.

Accedi all'account di root utilizzando la password impostata in precedenza durante il processo di installazione.

Abilitare il repository di pacchetti della comunità decommentando la terza riga di /etc/apk/repositoriesutilizzo vi. È possibile abilitare il edge e testare i repository in modo simile, ma non sono tenuti a seguire questa guida.

Sincronizza l'indice del pacchetto locale del server con il repository remoto selezionato in precedenza immettendo il seguente comando shell:

# apk update

Quindi aggiornare i pacchetti obsoleti:

# apk upgrade

Come in precedenza, ripetere questo processo di configurazione per ciascun server distribuito in precedenza.

Installa Docker sui tuoi server

Prima di installare il pacchetto Docker stesso, è possibile creare un dockerutente separato . Puoi farlo usando il seguente comando:

# adduser docker

Nota: questo nuovo utente e tutti gli utenti aggiunti al nuovo dockergruppo avranno i privilegi di root dopo l'installazione del pacchetto Docker. Vedi il seguente numero dal repository Moby Github:

A causa della --privilegedfinestra mobile in, chiunque aggiunto al gruppo 'finestra mobile' è equivalente root. Chiunque nel gruppo docker ha una backdoor attorno a tutti i criteri di escalation dei privilegi e al controllo sul sistema.

Questo è diverso dal fatto che qualcuno sia in grado di eseguire sudo su root, dove hanno una politica e un controllo applicato a loro.

Se desideri dare l'autorizzazione sudo dockerall'utente, installa prima il sudopacchetto:

# apk add sudo

Quindi crea un sudogruppo:

# addgroup sudo

Infine, aggiungi l' dockerutente al sudogruppo:

# adduser docker sudo

Ora puoi seguire il passaggio 4 di questa guida per completare la configurazione di sudo.

A questo punto, sei pronto per installare il pacchetto Docker. Si noti che non è strettamente necessario disporre di un utente separato e con capacità sudo dockerper installare e configurare Docker, ma questa guida segue tale convenzione.

Installa il pacchetto Docker con il seguente comando:

# apk add docker

Quindi abilitare lo script init Docker:

# rc-update add docker

Infine, avvia il demone Docker:

# rc-service docker start

Puoi verificare che Docker sia in esecuzione con questo comando:

# docker info

Come l'ultima volta, ripetere questo processo di installazione Docker per ciascun server che è stato distribuito all'inizio.

Inizializza uno sciame Docker con un nodo gestore e un nodo lavoratore

Con tutte queste impostazioni gestite, sei finalmente pronto per creare lo sciame Docker.

Crea uno sciame e aggiungi un nodo gestore

Torna alla console web del tuo Docker Managerserver. Configurerai questo server come nodo gestore nel tuo sciame. Se hai scelto di creare l' dockerutente in precedenza, accedi utilizzando quell'account anziché il superutente.

Immettere il comando seguente, ma sostituirlo 192.0.2.1con l'indirizzo IP privato (non pubblico) Docker Managerassegnato al server:

$ docker swarm init --advertise-addr 192.0.2.1

Docker visualizzerà un comando che è possibile eseguire su altri server nella rete privata per aggiungerli come nodi di lavoro a questo nuovo sciame. Salva questo comando.

Aggiungi un nodo di lavoro

Ora vai alla console web del tuo Docker Workerserver, eseguendo l'accesso con l' dockerutente se lo hai creato.

Per aggiungere questo server come nodo di lavoro allo sciame appena creato, eseguire il comando salvato dall'output del comando di creazione dello sciame. Sarà simile al seguente:

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

Docker emetterà se il nodo è stato in grado di unirsi allo sciame. Se si verificano problemi durante l'aggiunta di nodi di lavoro allo sciame, ricontrollare la configurazione della propria rete privata e fare riferimento a questa guida per la risoluzione dei problemi.

Se all'inizio sono stati distribuiti più di due server, è possibile aggiungere il resto come nodi di lavoro allo sciame utilizzando il comando sopra, aumentando la quantità di risorse disponibili per l'applicazione. In alternativa, puoi aggiungere altri nodi gestore, ma questo va oltre lo scopo di questa guida.

Distribuisci Portainer con SSL per gestire il tuo sciame Docker

A questo punto il tuo sciame Docker è pronto per l'uso. Tuttavia, puoi facoltativamente lanciare uno stack Portainer sul nodo manager nel tuo sciame. Portainer offre una comoda interfaccia Web per la gestione dello sciame e dei nodi in esso.

Ora è il momento di creare un gruppo firewall per il tuo sciame. A meno che l'applicazione non lo richieda specificamente, esporre solo le porte sui nodi del gestore . Esporre le porte sui nodi di lavoro senza attenta considerazione può introdurre vulnerabilità.

Passare all'interfaccia di gestione del firewall e creare un nuovo gruppo di firewall. La tua applicazione dovrebbe dettare quali porte esporre, ma devi almeno esporre la porta 9000per Portainer. Applicare questo gruppo firewall al Docker Managerserver.

Sebbene non sia necessario, è fortemente consigliato proteggere Portainer con SSL. Per motivi di questa guida, utilizzerai solo un certificato OpenSSL autofirmato, ma dovresti considerare l' utilizzo di Let's Encrypt in produzione.

Passare alla console Web del Docker Managerserver, accedere utilizzando l' dockerutente e utilizzare i comandi seguenti per generare un certificato OpenSSL autofirmato:

$ 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 un nuovo file ~/portainer-agent-stack.yml, con i seguenti contenuti:

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:

Dopo aver modificato questo file di configurazione dello stack Docker per renderlo conforme alle proprie esigenze, è possibile distribuirlo:

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

Per verificare che Portainer funzioni, eseguire il comando seguente dopo aver concesso a Docker un minuto o due per distribuire lo stack:

$ docker ps

Vedrai due contenitori con le immagini portainer/portainer:lateste portainer/agent:latest, verificando che Portainer sia stato avviato correttamente.

Ora puoi configurare e gestire lo sciame Docker visitando l'indirizzo IP pubblico del tuo Docker Managerserver sulla porta 9000usando HTTPS.



Leave a Comment

Installa Sentry tramite Docker su Ubuntu 16.04

Installa Sentry tramite Docker su Ubuntu 16.04

Usi un sistema diverso? Introduzione Sentry è una soluzione open source per il monitoraggio degli errori. Sentry tiene traccia delle eccezioni e di altri messaggi utili

Installa Rancher Server su RancherOS

Installa Rancher Server su RancherOS

Panoramica RancherOS è un sistema operativo incredibilmente leggero (solo circa 60 MB) che esegue un demone Docker di sistema come PID 0 per lesecuzione dei servizi di sistema

Come installare Harbor su CentOS 7

Come installare Harbor su CentOS 7

Harbour è un server di registro open source di classe enterprise che archivia e distribuisce immagini Docker. Harbour estende la distribuzione Docker open source b

Installazione di Docker su Ubuntu 14.04

Installazione di Docker su Ubuntu 14.04

Usando un sistema diverso? Docker è unapplicazione che consente di distribuire programmi eseguiti come contenitori. È stato scritto nel popolare programma Go

Distribuire unapplicazione Node.js mediante Docker

Distribuire unapplicazione Node.js mediante Docker

Questo articolo mostra come distribuire lapplicazione Node in un contenitore Docker. Nota: in questa esercitazione si presuppone che Docker sia installato e letto

Installa Rancher su Ubuntu 16.04

Installa Rancher su Ubuntu 16.04

Usi un sistema diverso? Introduzione Rancher è una piattaforma open source per lesecuzione di container e la creazione di un servizio di container privato. Rancher è base

Distribuisci Kubernetes con Kubeadm su CentOS 7

Distribuisci Kubernetes con Kubeadm su CentOS 7

Panoramica Questo articolo ha lo scopo di aiutarti a far funzionare un cluster Kubernetes con kubeadm in pochissimo tempo. Questa guida distribuirà due server, su

Installazione docker-compose su CoreOS

Installazione docker-compose su CoreOS

Questo articolo spiega come installare docker-compose su CoreOS. In CoreOS, la cartella / usr / è immutabile, quindi il percorso standard / usr / local / bin non è disponibile per

Distribuisci e gestisci in modo sicuro i contenitori LXC su Ubuntu 14.04

Distribuisci e gestisci in modo sicuro i contenitori LXC su Ubuntu 14.04

I contenitori LXC (contenitori Linux) sono una funzionalità del sistema operativo in Linux che può essere utilizzata per eseguire più sistemi Linux isolati su un singolo host. thes

Installa Docker CE su Ubuntu 18.04

Installa Docker CE su Ubuntu 18.04

Introduzione Docker è unapplicazione che ci consente di distribuire programmi eseguiti come contenitori. È stato scritto nel popolare linguaggio di programmazione Go

Introduzione a Kubernetes su CentOS 7

Introduzione a Kubernetes su CentOS 7

Kubernetes è una piattaforma open source sviluppata da Google per la gestione di applicazioni containerizzate in un cluster di server. Si basa su un decennio e

Sessione adesiva con Docker Swarm (CE) su Debian 9

Sessione adesiva con Docker Swarm (CE) su Debian 9

Usi un sistema diverso? Introduzione Docker Swarm trasforma i singoli server in un cluster di computer; facilitazione del ridimensionamento, alta disponibilità an

Come utilizzare Docker: creazione del primo contenitore Docker

Come utilizzare Docker: creazione del primo contenitore Docker

Questo tutorial spiega le basi per iniziare con Docker. Presumo che tu abbia già installato Docker. I passaggi di questo tutorial funzioneranno su un

Bilanciamento del carico con Docker

Bilanciamento del carico con Docker

Quando si esegue unapplicazione Web, in genere si desidera ottenere il massimo dalle proprie risorse senza dover convertire il software per utilizzare il multithreading o

Installazione di Docker CE su CentOS 7

Installazione di Docker CE su CentOS 7

La tecnologia del contenitore Docker consente di eseguire applicazioni in un ambiente specifico e isolato. Docker Community Edition (CE) è il nuovo nome per il fre

Su CoreOS, imposta il tuo registro Docker

Su CoreOS, imposta il tuo registro Docker

Conosciamo e amiamo tutti Docker, una piattaforma per creare, gestire e distribuire contenitori di applicazioni su più macchine. Docker Inc. fornisce un servizio t

Inizia con SQL Server 2017 (MS-SQL) su CentOS 7 con Docker

Inizia con SQL Server 2017 (MS-SQL) su CentOS 7 con Docker

Prerequisiti Docker engine 1.8+. Minimo 4 GB di spazio su disco. Minimo 4 GB di RAM. Passaggio 1. Installa Docker Per installare SQL-Server, Docker mus

Installazione di Docker CE su Debian 9

Installazione di Docker CE su Debian 9

Usi un sistema diverso? Introduzione Docker è unapplicazione che consente la distribuzione di software allinterno di contenitori virtuali. È stato scritto nel G

Installa Rancher su CentOS 7

Installa Rancher su CentOS 7

Usi un sistema diverso? Introduzione Rancher è una piattaforma open source per lesecuzione di container e la creazione di un servizio di container privato. Rancher è base

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.