Docker-Anleitung: Installation von Traefik – ein moderner Reverse Proxy für Microservices

Traefik ist ein moderner HTTP Reverse Proxy und Load Balancer für Microservices. Traefik macht die Bereitstellung aller Mikroservices einfach und integriert sich gut in bestehende Infrastrukturkomponenten wie Docker, Swarm Mode, Kubernetes, Amazon ECS, Rancher, Etcd, Consul etc.

Traefik dient als Router für alle Ihre Microservices-Anwendungen und leitet Client-Anfragen weiter, um das Ziel der Microservices zu korrigieren.

In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie Traefik modernen Reverse Proxy als Docker-Container auf Ubuntu 18.04 LTS (Bionic Beaver) installieren und konfigurieren.

Voraussetzungen

  • Ubuntu 18.04.
  • Root-Rechte

Was werden wir tun?

  1. Docker auf Ubuntu 18.04 installieren
  2. Docker Compose installieren
  3. Eigenes Docker-Netzwerk erstellen
  4. Traefik installieren und konfigurieren
  5. Prüfung

Schritt 1 – Docker auf Ubuntu 18.04 installieren

Für diesen Leitfaden verwenden wir die neueste Docker-Version, die aus dem offiziellen Docker-Repository installiert werden kann.

Fügen Sie den Dockerschlüssel und das Repository mit dem folgenden Befehl hinzu.

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"

Der Befehl’add-apt-repository‘ aktualisiert automatisch alle Repositories.

Docker auf Ubuntu installieren

Installieren Sie nun das neueste Docker-ce.

sudo apt install docker-ce

Nachdem die Installation abgeschlossen ist, starten Sie den Docker-Dienst und aktivieren Sie ihn, damit er jedes Mal beim Systemstart gestartet werden kann.

systemctl start docker
systemctl enable docker

Die Docker Community-Edition wurde auf dem Ubuntu 18.04 System installiert, überprüfen Sie die installierte Docker-Version.

docker version

Docker-Version prüfen

Zusätzlich: Laufender Docker für Nicht-Root-Benutzer

Der Docker-Container kann unter dem Nicht-Root-Benutzer ausgeführt werden. Wir müssen nur den Benutzer zur Dockergruppe hinzufügen.

Füge ‚mohammad‘ Benutzer hinzu.

useradd -m -s /bin/bash mohammad

Fügen Sie nun den Benutzer „mohammad“ zur Docker-Gruppe hinzu und starten Sie den Docker-Dienst neu.

usermod -a -G docker mohammad
systemctl restart docker

Testen Sie, indem Sie den Docker hello-world starten.

docker run -it hello-world

Und folgendes ist das Ergebnis.

Laufender Docker für Nicht-Root-Benutzer

Schritt 2 – Docker Compose installieren

Docker-Compose ist ein Befehlszeilenwerkzeug zur Definition und Verwaltung von Multi-Container-Docker-Anwendungen.

Docker Compose ist ein Python-Skript, es kann mit dem Befehl python pip oder mit dem Befehl apt aus dem Ubuntu-Repository einfach installiert werden. Mit compose können wir mehrere Docker-Container mit einem einzigen Befehl ausführen.

Installieren Sie Docker Composite aus dem Repository mit dem Befehl apt unten.

sudo apt install docker-compose

Nachdem die Installation abgeschlossen ist, überprüfen Sie die Docker Compose-Version.

docker-compose version

Der Docker Composite 1.17 wurde auf Ubuntu 18.04 installiert.

Docker Compose installieren

Schritt 3 – Erstellen eines benutzerdefinierten Docker-Netzwerks

In diesem Tutorial wird der Traefik-Container im Docker Custom Network ausgeführt. Daher müssen wir ein neues benutzerdefiniertes Docker-Netzwerk auf dem Server erstellen.

Überprüfen Sie das verfügbare Dockernetzwerk auf dem System.

docker network ls

Erstellen Sie nun ein neues benutzerdefiniertes Netzwerk namens „Proxy“ für den Traefik-Container.

docker network create proxy

Und Sie erhalten eine zufällige Zeichenkette des Netzwerk-Containernamens. Überprüfen Sie erneut das verfügbare Netzwerk.

docker network ls

Unten dargestellt ist das Ergebnis.

Eigenes Docker-Netzwerk erstellen

Das benutzerdefinierte Docker-Netzwerk namens ‚Proxy‘ für Traefik wurde erstellt.

Schritt 4 – Installation und Konfiguration von Traefik Reverse Proxy

In diesem Schritt erstellen wir den Traefik-Container mit aktivierter HTTPS-L letsencrypt (unter Verwendung eines Domainnamens’traefik.hakase-labs.io) und leiten HTTP automatisch an HTTPS auf traefik weiter.

Traefik Vorinstallation

Bevor wir die gesamte Traefik-Konfiguration erstellen, müssen wir ‚apache2-utils‘ installieren, um das verschlüsselte htpasswd-Passwort zu generieren und das neue Traefik-Verzeichnis zu erstellen.

Installiere ‚apache2-utils‘ mit dem folgenden apt-Befehl.

sudo apt install apache2-utils -y

Führen Sie nun den folgenden Befehl htpasswd aus, um ein neues Passwort für die Authentifizierung des Traefik Dashboards zu generieren.

htpasswd -nb mohammad password

Behalte das Ergebnis in deiner Notiz.

mohammad:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.

Installation und Konfiguration von Traefik Reverse Proxy

Als nächstes melden Sie sich beim Benutzer „mohammad“ an.

su - mohammad

Erstellen Sie ein neues Verzeichnis namens’traefik‘ für die gesamte Traefik-Konfiguration.

mkdir -p traefik/
cd traefik/

Traefik-Konfiguration erstellen

Gehen Sie in das Verzeichnis’traefik‘ und erstellen Sie mit dem vim editor eine neue Konfigurationsdatei’traefik.toml‘.

cd traefik/
vim traefik.toml

Fügen Sie die untenstehende Konfiguration ein.

#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 = "hakaselabs@gmail.com"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

Speichern und beenden.

Hinweis:

Alle Informationen zur Konfiguration finden Sie im Kommentarbereich ‚#…… ‚.

Traefik Docker erstellen Skript verfassen

Erstellen Sie nun das docker-compose yml-Skript.

vim docker-compose.yml

Fügen Sie die untenstehende Konfiguration ein.

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

Speichern und beenden.

Hinweis:

  1. Wir erstellen einen neuen Container namens’traefik‘, der auf dem Docker-Image’traefik:latest‘ basiert.
  2. Der ‚traefik‘ Container wird im benutzerdefinierten Docker-Netzwerk namens ‚proxy‘ ausgeführt und stellt die externen Ports HTTP 80 und HTTPS 443 zur Verfügung.
  3. Der Container wird die Traefik-Konfiguration’traefik.toml‘ und’acme.json‘ inklusive der Docker-Socken-Datei mounten.
  4. Label-Konfiguration für traefik, den Frontend-Domainnamen und den Traefik-Port.

Letsencrypt ACME-Konfiguration

Die Acme-Konfiguration auf’traefik.toml‘ dient zur automatischen Generierung der SSL-Laufzeitverschlüsselung. Und es wird für die Speicherdatei’acme.json‘ benötigt.

Erstellen Sie eine neue JSON-Datei ‚acme.json‘ und ändern Sie die Berechtigung auf’600′.

touch acme.json
chmod 600 acme.json

Alle Protokolle über SSL letsencrypt info werden in der Datei gespeichert.

Traefik Container bauen

Jetzt sind wir bereit, einen eigenen Traefik-Container mit den oben genannten Konfigurationsdateien zu erstellen.

cd traefik/
ls -lah

Alle Konfigurationsdateien ‚traefik.toml‘, ‚docker-compose.yml‘ und ‚acme.json‘.

Traefik Container bauen

Erstellen Sie den Container mit dem untenstehenden Befehl docker compose.

docker-compose up -d

Erstellen Sie den Container mit Hilfe von Docker Composite.

Wenn es fertig ist, überprüfen Sie den laufenden Behälter.

docker-compose ps

Und Sie werden den Traefik-Container zum Laufen bringen, die externen Ports HTTP und HTTPS freigeben.

Traefik-Container in Betrieb genommen

Schritt 5 – Prüfung

Öffnen Sie Ihren Webbrowser und geben Sie den Namen der Traefik-Domain in die Adressleiste ein. Meins schon:

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

Sie werden zur HTTPS-Verbindung weitergeleitet und nach dem Benutzernamen und dem Passwort gefragt.

Passwortbasierte Authentifizierung

Melden Sie sich mit dem Benutzer’mohammad‘ an und das Passwort ist’password‘.

Und Sie erhalten das Traefik Dashboard wie unten beschrieben.

Traefik Dashboard

Traefik Gesundheitsstatusseite.

Traefik Gesundheitsstatusseite

Traefik moderner HTTP Reverse-Proxy wurde als Docker-Container auf Ubuntu 18.04 installiert.

Referenz

Das könnte dich auch interessieren …