GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Docker Guide:installazione di Traefik, un proxy inverso moderno per microservizi

Traefik è un moderno proxy inverso HTTP e bilanciamento del carico per microservizi. Traefik semplifica l'implementazione di tutti i microservizi, integrandoli con i componenti dell'infrastruttura esistente come Docker, Swarm Mode, Kubernetes, Amazon ECS, Rancher, Etcd, Consul ecc.

Traefik funge da router per tutte le tue applicazioni di microservizi, instradando tutte le richieste dei client alla corretta destinazione dei microservizi.

In questo tutorial, ti mostrerò passo dopo passo come installare e configurare il proxy inverso moderno di Traefik come contenitore Docker su Ubuntu 18.04 LTS (Bionic Beaver).

Prerequisiti

  • Ubuntu 18.04
  • Privilegi di root

Cosa faremo?

  1. Installa Docker su Ubuntu 18.04
  2. Installa Docker Compose
  3. Crea rete Docker personalizzata
  4. Installa e configura Traefik
  5. Test

Passaggio 1 - Installa Docker su Ubuntu 18.04

Per questa guida, utilizzeremo l'ultima versione della finestra mobile che può essere installata dal repository ufficiale della finestra mobile.

Aggiungi la chiave mobile e il repository utilizzando il comando seguente.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Il comando 'add-apt-repository' aggiornerà automaticamente tutti i repository.

Ora installa l'ultimo docker-ce.

sudo apt install docker-ce

Al termine dell'installazione, avvia il servizio Docker e abilitalo per l'avvio ogni volta all'avvio del sistema.

systemctl start docker
systemctl enable docker

L'edizione della comunità Docker è stata installata sul sistema Ubuntu 18.04, controlla la versione Docker installata.

docker version

Aggiuntivo:esecuzione di Docker per utenti non root

Il contenitore Docker può essere eseguito con l'utente non root. Dobbiamo solo aggiungere l'utente al gruppo Docker.

Aggiungi l'utente "mohammad".

useradd -m -s /bin/bash mohammad

Ora aggiungi l'utente 'mohammad' al gruppo Docker, quindi riavvia il servizio Docker.

usermod -a -G docker mohammad
systemctl restart docker

Prova eseguendo la finestra mobile hello-world.

docker run -it hello-world

E di seguito il risultato.

Passaggio 2:installazione di Docker Compose

Docker-Compose è uno strumento a riga di comando per la definizione e la gestione di applicazioni docker multi-container.

Docker Compose è uno script python, può essere installato facilmente con il comando python pip o con il comando apt dal repository di Ubuntu. Con Compose, possiamo eseguire più contenitori Docker con un unico comando.

Installa docker compose dal repository usando il comando apt di seguito.

sudo apt install docker-compose

Al termine dell'installazione, controlla la versione di composizione della finestra mobile.

docker-compose version

La finestra mobile compone 1.17 è stata installata su Ubuntu 18.04.

Passaggio 3:crea una rete Docker personalizzata

In questo tutorial, il contenitore traefik verrà eseguito sulla rete personalizzata Docker. Quindi dobbiamo creare una nuova rete personalizzata Docker sul server.

Controlla la rete Docker disponibile sul sistema.

docker network ls

Ora crea una nuova rete personalizzata denominata "proxy" per il container traefik.

docker network create proxy

E otterrai una stringa casuale del nome del contenitore di rete. Ricontrolla la rete disponibile.

docker network ls

Di seguito è mostrato il risultato.

È stata creata la rete docker personalizzata denominata 'proxy' per traefik.

Fase 4:installazione e configurazione di Traefik Reverse Proxy

In questo passaggio, creeremo il contenitore traefik con HTTPSletsencrypt abilitato (usando un nome di dominio 'traefik.hakase-labs.io) e reindirizzeremo automaticamente HTTP a HTTPS su traefik.

Preinstallazione di Traefik

Prima di creare tutta la configurazione di traefik, è necessario installare 'apache2-utils' per generare la password htpasswd crittografata e creare la nuova directory traefik.

Installa 'apache2-utils' usando il comando apt di seguito.

sudo apt install apache2-utils -y

Ora esegui il comando htpasswd di seguito per generare una nuova password per l'autenticazione del dashboard di traefik.

htpasswd -nb mohammad password

Conserva il risultato nella tua nota.

mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.

Quindi, accedi all'utente 'mohammad'.

su - mohammad

Crea una nuova directory denominata 'traefik' per tutte le configurazioni di traefik.

mkdir -p traefik/
cd traefik/

Crea configurazione Traefik

Vai alla directory 'traefik' e crea un nuovo file di configurazione 'traefik.toml' usando l'editor vim.

cd traefik/
vim traefik.toml

Incolla la configurazione qui sotto.

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Enable Traefik Dashboard on port 8080
#with basic authentication method
#mohammad and password
[web]
address = ":8080"
[web.auth.basic]
users = ["mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi."]

#Define the HTTP port 80 and
#HTTPS port 443 EntryPoint
#Enable automatically redirect HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable retry sending a request if the network error
[retry]

#Define Docker Backend Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "traefik.hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

Salva ed esci.

Nota:

Tutte le informazioni sulla configurazione sono nella sezione commenti '#... '.

Crea script di composizione Traefik Docker

Ora crea lo script yml di composizione mobile.

vim docker-compose.yml

Incolla la configurazione qui sotto.

version: '3'

services:

  traefik:
    image: traefik:latest
    command: --docker --docker.domain=hakase-labs.io
    ports:
      - 80:80
      - 443:443
    networks:
      - proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    labels:
      - "traefik.frontend.rule=Host:traefik.hakase-labs.io"
      - "traefik.port=8080"
    container_name: traefik
    restart: always

networks:
  proxy:
    external: true

Salva ed esci.

Nota:

  1. Stiamo creando un nuovo contenitore denominato 'traefik' basato sull'immagine della finestra mobile 'traefik:latest'.
  2. Il contenitore 'traefik' verrà eseguito sulla rete Docker personalizzata denominata 'proxy' ed esporrà le porte esterne HTTP 80 e HTTPS 443.
  3. Il contenitore monterà la configurazione di traefik 'traefik.toml' e 'acme.json', incluso il file docker sock.
  4. Configurazione dell'etichetta per traefik, il nome di dominio frontend e la porta traefik.

Configurazione Letsencrypt ACME

La configurazione acme su 'traefik.toml' viene utilizzata per generare automaticamente il letencrypt SSL. Ed è necessario per il file di archiviazione "acme.json".

Crea un nuovo file JSON "acme.json" e modifica l'autorizzazione in "600".

touch acme.json
chmod 600 acme.json

Tutti i registri sulle informazioni di Letencrypt SSL verranno salvati nel file.

Costruisci un container Traefik

Ora siamo pronti per creare il nostro container traefik utilizzando i file di configurazione sopra.

cd traefik/
ls -lah

Tutti i file di configurazione "traefik.toml", "docker-compose.yml" e "acme.json".

Costruisci il contenitore utilizzando il comando Docker Compose di seguito.

docker-compose up -d

Al termine, controlla il contenitore in esecuzione.

docker-compose ps

E otterrai il container Traefik attivo e funzionante, esporrai le porte esterne HTTP e HTTPS.

Fase 5 - Test

Apri il tuo browser web e digita il nome di dominio traefik nella barra degli indirizzi. Il mio è:

http://traefik.hakase-labs.io/

Verrai reindirizzato alla connessione HTTPS e ti verrà richiesta l'autenticazione di nome utente e password.

Accedi con l'utente 'mohammad' e la password è 'password'.

E otterrai la dashboard di Traefik come di seguito.

Pagina dello stato di Traefik Health.

Il proxy inverso HTTP moderno di Traefik è stato installato come contenitore Docker su Ubuntu 18.04.


Docker
  1. Una guida all'esecuzione di un proxy inverso per HTTP(S), SSH e MySQL/MariaDB utilizzando NGINX

  2. Che cos'è un contenitore Docker:una guida introduttiva per principianti

  3. Proxy inverso con Nginx:una guida all'installazione passo passo

  4. Una guida per principianti a LXD:configurazione di un proxy inverso per ospitare più siti web

  5. Installazione Docker (Ubuntu)

Crea un proxy inverso NGINX in Docker e impara 1 nuova abilità!

Guida completa per la rimozione delle immagini Docker

Comandi Docker per la gestione del ciclo di vita dei container (Guida definitiva)

Installazione di Docker su macOS

40 utili comandi di rete Linux per i moderni amministratori di sistema

NGINX come proxy inverso per applicazioni Node o Angular