Eine kleine Incus-Installation mit zwei oder drei Containern lässt sich problemlos verwalten.
Doch was passiert, wenn daraus werden:
- 20 Container
- mehrere virtuelle Maschinen
- verschiedene Kunden
- Entwicklungs- und Produktionsumgebungen
- unterschiedliche Administratoren
Ohne Struktur wird die Verwaltung schnell unübersichtlich.
Genau hierfür bietet Incus zwei zentrale Werkzeuge:
- Projects
- Profiles
Während Projects verschiedene Umgebungen logisch voneinander trennen, sorgen Profiles für wiederverwendbare Konfigurationen.
Gemeinsam bilden sie die Grundlage für eine saubere und skalierbare Incus-Infrastruktur.
Was sind Projects?
Ein Project ist ein logisch abgegrenzter Bereich innerhalb einer Incus-Installation.
Jedes Projekt besitzt eigene:
- Container
- virtuelle Maschinen
- Images
- Netzwerke
- Storage Volumes
- Profile (optional)
- Quotas und Einschränkungen
Container aus unterschiedlichen Projekten sind standardmäßig voneinander getrennt.
Dadurch eignet sich diese Funktion hervorragend für Unternehmen und Hosting-Umgebungen.
Warum Projects verwenden?
Projects schaffen Ordnung.
Beispielsweise können unterschiedliche Bereiche getrennt werden.
Projekt:
Entwicklung
Enthält:
- Testserver
- GitLab
- Entwicklungsdatenbanken
- CI/CD
Projekt:
Produktion
Enthält:
- Webserver
- Datenbanken
- Reverse Proxy
- Monitoring
Projekt:
Kunde A
Enthält ausschließlich die Systeme dieses Kunden.
Projekt:
Kunde B
Enthält ausschließlich dessen Infrastruktur.
Die Projekte beeinflussen sich gegenseitig nicht.
Projekte anzeigen
Alle vorhandenen Projekte:
incus project list
Details anzeigen:
incus project show default
Neues Projekt erstellen
Ein neues Projekt wird mit wenigen Befehlen erstellt.
incus project create kunde-a
Danach erscheint es automatisch in der Projektliste.
Projekt wechseln
Zum Arbeiten innerhalb eines Projekts:
incus project switch kunde-a
Ab jetzt beziehen sich alle Incus-Befehle auf dieses Projekt.
Prüfen:
incus project list
Das aktive Projekt wird entsprechend markiert.
Container innerhalb eines Projekts erstellen
Nach dem Wechsel genügt der bekannte Befehl.
incus launch images:debian/13 webserver
Der Container wird automatisch im aktiven Projekt erstellt.
Ressourcen begrenzen
Projects können auch genutzt werden, um Ressourcen einzuschränken.
Beispielsweise:
- maximale Anzahl Container
- Speicherplatz
- Netzwerke
- CPU-Ressourcen
Dadurch lassen sich verschiedene Kunden oder Abteilungen sauber voneinander trennen.
Was sind Profiles?
Profiles gehören zu den wichtigsten Verwaltungsfunktionen von Incus.
Ein Profil enthält wiederverwendbare Einstellungen.
Anstatt jeden Container einzeln zu konfigurieren, werden die gewünschten Einstellungen einmal im Profil hinterlegt.
Neue Container übernehmen diese Konfiguration automatisch.
Typische Inhalte eines Profils
Ein Profil kann beispielsweise enthalten:
- CPU-Limits
- RAM-Limits
- Netzwerk
- Storage Pool
- Mounts
- USB-Geräte
- GPU
- PCI-Geräte
- Sicherheitsoptionen
- Autostart
Dadurch wird die Administration deutlich einfacher.
Vorhandene Profile anzeigen
Alle Profile anzeigen:
incus profile list
Details:
incus profile show default
Neues Profil erstellen
Ein eigenes Profil anlegen:
incus profile create webserver
Danach können Einstellungen hinzugefügt werden.
Beispielsweise CPU:
incus profile set webserver limits.cpu=2
RAM:
incus profile set webserver limits.memory=2GiB
Autostart:
incus profile set webserver boot.autostart=true
Profil einem Container zuweisen
Beim Erstellen:
incus launch images:debian/13 apache --profile webserver
Oder nachträglich:
incus profile assign apache default,webserver
Der Container übernimmt sofort die Einstellungen des Profils.
Mehrere Profile kombinieren
Ein Container kann mehrere Profile gleichzeitig verwenden.
Beispiel:
Profil:
- default
enthält:
- Netzwerk
- Storage
Profil:
- webserver
enthält:
- CPU
- RAM
Profil:
- gpu
enthält:
- NVIDIA-GPU
Alle drei können gemeinsam verwendet werden.
incus profile assign ki-server default,webserver,gpu
Dadurch entstehen modulare Konfigurationen.
Projekte und Profile kombinieren
Die eigentliche Stärke zeigt sich in der Kombination.
Projekt:
Kunde A
enthält:
- Webserver
- Datenbank
- Backup
Alle Container nutzen das Profil:
kunde-standard
Dieses definiert:
- 2 CPU-Kerne
- 2 GB RAM
- Bridge-Netzwerk
- ZFS
- Autostart
Neue Container sind dadurch innerhalb weniger Sekunden vollständig eingerichtet.
Mehrere Kunden verwalten
Ein typisches Hosting-Szenario:
Projekt:
kunde-a
Container:
- Apache
- MariaDB
- Nextcloud
Projekt:
kunde-b
Container:
- Nginx
- PostgreSQL
- Gitea
Projekt:
intern
Container:
- Monitoring
- Backup
- Reverse Proxy
Alle Kunden bleiben logisch voneinander getrennt.
Vorteile der Trennung
Durch Projects ergeben sich zahlreiche Vorteile.
- bessere Übersicht
- höhere Sicherheit
- getrennte Ressourcen
- einfachere Verwaltung
- saubere Mandantentrennung
- weniger Konfigurationsfehler
Gerade Unternehmen profitieren erheblich von dieser Struktur.
Wiederverwendbare Konfigurationen
Profiles vermeiden doppelte Arbeit.
Statt:
Container 1 konfigurieren
Container 2 konfigurieren
Container 3 konfigurieren
…
werden alle Einstellungen einmal im Profil definiert.
Neue Container übernehmen diese automatisch.
Das reduziert Fehler und spart viel Zeit.
Typische Profile
Webserver
Enthält:
- 2 CPU
- 2 GB RAM
- Bridge
- Autostart
Datenbank
Enthält:
- 4 CPU
- 8 GB RAM
- SSD-Storage
- Backup-Mount
GPU
Enthält:
- NVIDIA
- CUDA
- hohe CPU-Leistung
Entwicklung
Enthält:
- SSH
- größere Festplatte
- gemeinsame Verzeichnisse
Best Practices
Für den produktiven Betrieb haben sich folgende Empfehlungen bewährt:
- Für jede Umgebung ein eigenes Projekt erstellen.
- Entwicklungs- und Produktivsysteme strikt trennen.
- Projekte nach Kunden oder Abteilungen strukturieren.
- Profile möglichst klein und modular halten.
- Mehrere Profile kombinieren statt ein großes Universalprofil zu erstellen.
- Aussagekräftige Namen verwenden.
- Änderungen an Profilen dokumentieren.
- Standardprofile regelmäßig überprüfen.
Häufige Fehler
Zu viele Einstellungen im Standardprofil
Das Standardprofil sollte nur grundlegende Konfigurationen enthalten.
Spezielle Einstellungen gehören in eigene Profile.
Keine Trennung zwischen Entwicklung und Produktion
Dies erhöht das Risiko von Fehlkonfigurationen.
Besser:
- Projekt Entwicklung
- Projekt Test
- Projekt Produktion
Profile nicht wiederverwenden
Wer jeden Container einzeln konfiguriert, verschenkt einen der größten Vorteile von Incus.
Nützliche Befehle im Überblick
incus project list
Zeigt alle vorhandenen Projekte an.
incus project create
Erstellt ein neues Projekt.
incus project switch
Wechselt in ein anderes Projekt.
incus project show
Zeigt die Konfiguration eines Projekts an.
incus profile list
Listet alle vorhandenen Profile auf.
incus profile create
Erstellt ein neues Profil.
incus profile show
Zeigt die Einstellungen eines Profils an.
incus profile set
Konfiguriert Eigenschaften eines Profils.
incus profile assign
Weist einem Container ein oder mehrere Profile zu.
Projects und Profiles gehören zu den leistungsfähigsten Verwaltungsfunktionen von Incus. Während Projects eine klare Trennung zwischen Kunden, Abteilungen oder Umgebungen ermöglichen, sorgen Profiles für einheitliche und wiederverwendbare Konfigurationen. Besonders in größeren Installationen sparen sie Zeit, reduzieren Fehler und schaffen eine übersichtliche Struktur.
Im nächsten Teil der Serie beschäftigen wir uns mit der Verwaltung mehrerer Incus-Server. Du lernst, wie Remotes eingerichtet werden und wie sich Container und virtuelle Maschinen zwischen verschiedenen Hosts kopieren oder verschieben lassen.