Traefik Hub

Webserver mit Traefik Hub als VPN Tunnel betreiben

Container Anwendungen haben viele Leser bereits im HomeLab im Einsatz, jetzt kommt eine neue Anwendung hinzu, wo es sich lohnt ein Blick auf Traefik Hub zu werfen. Traefik Hub dient als Gateway, um Dienste mittels sicherer Tunnel zu veröffentlichen, die innerhalb eines Docker-Clusters angesiedelt sind. Container mit dem Reverse-Proxy Traefik ins Netz zu hängen, ist meist kein einfacher Vorgang. Traefik Hub erleichtert dieses durch das integrierte Service-Discovery. Dies ist eine automatische Erkennung von Diensten im Servernetz. Das Dashboard liefert Metriken zu Ihren veröffentlichten Diensten, wie Anfragen pro Sekunde und Antwortzeiten des Servers. Alle Dienste sind mit einer Access Control Policies benutzbar.

Vorteile:

  • Keine Freischaltung von Ports auf dem DSL-Router wie Fritzbox nötig
  • Kein NAT nötig
  • Nutzbar für DSL-Light Anschlüsse die keine Dienste nach außen freigeben können
  • Einbindung eigener Domain mit CNAME möglich inkl. TLS/SSL
  • Automatische Erstellung von Lets Encrypt Zertifikate inkl. CNAME Domain
  • Traefik Tunnel Technologie ohne Freischaltungen

Nachteile:

  • Ab 1 GB Traffic wird der Dienst kostenpflichtig
  • Derzeit noch im Betastatus
Traefik Hub mit Tunnel
Traefik Hub mit Tunnel

Benötigt wird:

  • Account bei hub.traefik.io
  • Raspberry Pi 3+ oder besser Pi 4 mit 4GB Speicher https://1.access.ly/pGIkG ( * )
  • Software docker.io / docker-compose
  • Eigene Domain ( optional ) mit Zugriff auf Erstellung von CNAME

Software Installation:

apt install docker.io 
apt install docker-compose

Vorbereitung der Docker Container:

Für die Installation wird der hub.token von hub.traefik.io benötigt, diesen ersetzen.

docker network create traefik-hub

docker run -d --name traefik --network traefik-hub traefik:v2.8 --experimental.hub=true --hub.tls.insecure=true --metrics.prometheus.addrouterslabels=true

docker run -d  --volume /var/run/docker.sock:/var/run/docker.sock --restart="on-failure" --network=traefik-hub --pull=always --name=hub-agent ghcr.io/traefik/hub-agent-traefik:v0.8.0 run --auth-server.advertise-url=http://hub-agent --hub.token=xxxxxxxxx --traefik.host=traefik --traefik.tls.insecure=true

Erstelle ein docker-compose.yml 

mkdir -p /home/pi/docker/httpd
cd /home/pi/docker/httpd


version: '2.2'
services:
  apache:
    image: httpd:latest
    container_name: apache2
    ports:
    - '8080:80'
    volumes:
    - ./website:/usr/local/apache2/htdocs

docker-compose up -d 

Das ganze sieht wie folgt aus:

Docker Container mit Traefik Tunnel
Laufende Docker Container

Es sollte nun im Dashboard von Traefik Hub ein Agent sichtbar sein. Veröffentliche den Apache2 Server im Dashboard als Service. Im Anschluss wird automatisch eine URL erstellt.

Traefik Hub mit Tunnel
Einrichtung Services

In diesen Fall für den Artikel ist es:
https://easy-reindeer-te1xtn.jxbnas2o.traefikhub.io.
Bei Aufruf im Browser wird die Default-Webseite des Apache-Webserver angezeigt.
Wenn nicht, dann unter /home/pi/docker/httpd/website, eine index.html erstellen.

Damit diese kryptische URL über einen eigenen Domainnamen erreichbar ist, benötigt es einen Eintrag im DNS-Server des Domainprovider. In meinem Fall für diesen Artikel, wird web.unixweb.eu als CNAME eingetragen. Diese Domain muss ebenfalls in Traefik Hub unter den eingerichteten Service hinzugefügt werden. Beachte hierbei die Service Meldung im Dashboard oben rechts mit der Glocke. Dort ist der Hinweis zu finden, dass die zusätzliche Domain mit einem TLS-Zertifikat erstellt und hinzugefügt ist.

CNAME Eintrag für Traefik Hub Tunnel
Eintrag CNAME für Traefik Hub Tunnel
Traefik Hub Tunnel - Eigene Domain Einrichtung
Einrichtung CNAME Domain in Traefik Hub
Hinweis im Dashboard von Traefik Hub

Wer es noch etwas eleganter haben möchte, kann Portainer für Docker installieren. Dort können die Container neu gestartet, geupdated, neue Container eingerichtet werden. Wichtig ist, dass alle Container im Netzwerk “traefik-hub” deployed werden. Damit kann der Traefik Docker Container automatisch erkennen, dass ein neuer Dienst hinzugefügt ist. Der neue Container ist sofort und automatisch im Traefik Hub unter Services sichtbar.

Alle Artikel auf dieser Seite sind mit einem sogenannte Provision-Links. Wenn du auf so einen Verweislink klickst und über diesen Link einkaufst, bekomme ich von deinem Einkauf eine Provision. Weiterführende Infos gibt es hier unter Punkt 8 in der Datenschutzerklärung  https://blog.unixweb.de/datenschutzerklaerung/

Joachim

Aus Leidenschaft für Technik. Aktuelle Themen sind Datensicherheit, Software für Datenschutz, Mobile Geräte, Smartphone Sicherheit und Anwendungen, Raspberry Pi Geek.

Alle Beiträge ansehen von Joachim →

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert