Zum Inhalt springen

Projekt Phoenyx – Teil 3: Netzwerk & Der Motor

Kategorie: Homelab / Server / Tutorials | Lesezeit: ca. 15 Minuten

Schritt 4: Das interne Netz (VLAN)

Ein Server-Cluster ist wie ein Team im Büro. Manchmal muss man sich Dinge zurufen können, ohne dass es die Kunden (das Internet) mitbekommen. Wir wollen eine „Privatleitung“ zwischen Server01 und Server02. Das ist sicherer und schneller für unsere Backups.

Dafür nutzen wir ein VLAN (Virtual LAN). Stell es dir vor wie eine zweite, unsichtbare Netzwerkkarte.

Der Plan:
Server01 bekommt die interne IP: 10.0.0.1
Server02 bekommt die interne IP: 10.0.0.2

Ubuntu nutzt dafür Netplan. Die Konfiguration ist mächtig, aber pingelig bei Leerzeichen (YAML-Format).

Öffne die Konfiguration:

sudo nano /etc/netplan/00-installer-config.yaml

Füge den VLAN-Abschnitt hinzu. Achtung: Dein physisches Interface (hier eth0) kann auch ens18 oder anders heißen. Prüfe das vorher mit ip a.

network:
  version: 2
  ethernets:
    eth0:       # Dein physisches Interface
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: eth0
      addresses: [10.0.0.1/24] # WICHTIG: Auf Server02 hier .2 eintragen!

Speichern (STRG+O) und schließen (STRG+X). Dann aktivieren:

sudo netplan apply

Testen wir die Leitung! Tippe auf Server01: ping 10.0.0.2. Wenn es antwortet, steht die Verbindung!

Schritt 5: Docker Installation

Jetzt installieren wir den Motor. In unserer modernen Architektur installieren wir Dienste nicht mehr „fest“ auf dem Server, sondern in Containern. Das hält das System sauber.

Wir nutzen die offizielle Docker-Quelle, da die Ubuntu-Standardquellen oft veraltet sind.

1. Vorbereitung & Schlüsselbund:

sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

2. Quelle hinzufügen:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. Installation:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Nach diesem Block sollte der Befehl docker ps funktionieren.

Schritt 5.5: Docker Tuning (daemon.json)

Docker läuft, aber die Standard-Einstellungen sind für professionelle Setups nicht optimal. Wir müssen Docker beibringen, wie es sich im Netzwerk verhält und wie es Protokolle schreibt.

Erstelle oder bearbeite die Konfigurationsdatei:

sudo nano /etc/docker/daemon.json

Füge folgenden Inhalt ein:

{
  "ipv6": true,
  "fixed-cidr-v6": "fd00:1:be:a:7000::/80",
  "default-address-pools": [
    {
      "base": "172.25.0.0/14",
      "size": 25
    },
    {
      "base": "fd00:1:be:a:7002::/80",
      "size": 123
    }
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "29m",
    "max-file": "10"
  }
}
Warum machen wir das? Drei wichtige Gründe:
  1. Netzwerk-Hygiene: Standardmäßig vergibt Docker Netzwerke oft wild. Mit 172.25.0.0/14 reservieren wir einen riesigen Bereich, der uns sauber in /25-Subnetze aufgeteilt wird. Das reicht für über 2000 Docker-Netzwerke!
  2. Konfliktvermeidung: Tools wie Mailcow nutzen oft fest das Netz 172.22.1.0/24. Indem wir Docker zwingen, bei 172.25.x.x zu bleiben, verhindern wir IP-Adresskonflikte, die später schwer zu debuggen sind.
  3. Festplatten-Schutz: Container „reden“ viel. Ohne Begrenzung (log-opts) können Log-Dateien riesig werden und den Server lahmlegen. Wir begrenzen hier auf 10 Dateien à 29MB.

Damit die Änderungen wirksam werden, starten wir Docker neu:

sudo systemctl restart docker

Schritt 6: Ordnung ist das halbe Leben

Ein typischer Anfängerfehler: docker-compose.yml Dateien liegen wild verstreut im Home-Verzeichnis (/home/user/projekt1, /home/user/test). Das wird chaotisch.

Wir etablieren einen Industriestandard: Alle Container-Daten gehören nach /opt/containers. Das macht Backups kinderleicht – wir müssen nur diesen einen Ordner sichern.

# Verzeichnis erstellen
sudo mkdir -p /opt/containers

# Rechte an deinen User geben (damit du kein sudo für Dateioperationen brauchst)
sudo chown -R $USER:$USER /opt/containers

Fazit & Ausblick

Das Fundament steht! Wir haben Updates, Sicherheit, ein internes Netz und eine sauber konfigurierte Docker-Engine mit Log-Rotation und festen IP-Bereichen. Außerdem haben wir eine saubere Ordnerstruktur.

Damit ist die „trockene“ Arbeit erledigt. Im nächsten Teil installieren wir unseren ersten Container: Traefik, der dafür sorgen wird, dass alle unsere Dienste sicher über HTTPS erreichbar sind.

Published inHowToNerdStuffTutorial

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar

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