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?
- Docker auf Ubuntu 18.04 installieren
- Docker Compose installieren
- Eigenes Docker-Netzwerk erstellen
- Traefik installieren und konfigurieren
- 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.
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
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.
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.
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.
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.
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:
- Wir erstellen einen neuen Container namens’traefik‘, der auf dem Docker-Image’traefik:latest‘ basiert.
- 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.
- Der Container wird die Traefik-Konfiguration’traefik.toml‘ und’acme.json‘ inklusive der Docker-Socken-Datei mounten.
- 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‘.
Erstellen Sie den Container mit dem untenstehenden Befehl docker compose.
docker-compose up -d
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.
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.
Melden Sie sich mit dem Benutzer’mohammad‘ an und das Passwort ist’password‘.
Und Sie erhalten das Traefik Dashboard wie unten beschrieben.
Traefik Gesundheitsstatusseite.
Traefik moderner HTTP Reverse-Proxy wurde als Docker-Container auf Ubuntu 18.04 installiert.