UniFi Netzwerk-Anwendung #
Die UniFi Netzwerk-Anwendung (ehemals UniFi Controller) ist eine von Ubiquiti entwickelte Software-Defined Networking (SDN)-Plattform. Sie dient als zentrale Verwaltungsschnittstelle für UniFi-Netzwerkgeräte, einschließlich Gateways, Switches und Wi-Fi-Zugangspunkte.
Status #
Deployment #
Komponenten #
Diese UniFi Netzwerk-Anwendung-Bereitstellung umfasst:
- UniFi Netzwerk-Anwendung: Die Kernanwendung zur Verwaltung von UniFi-Geräten.
- MongoDB: Die Datenbank, die von der UniFi Netzwerk-Anwendung zur Speicherung ihrer Daten verwendet wird.
Quelle #
- UniFi Netzwerk-Anwendung: Ubiquiti Official Website
- LinuxServer.io UniFi Netzwerk-Anwendung Image: Docker Hub
- MongoDB: Official Docker Image
Dokumentation #
Die offizielle Dokumentation von Ubiquiti UniFi ist unter help.ui.com zu finden.
Funktion #
Der UniFi Network Controller ist die zentrale Verwaltungssoftware für das im Netzwerk eingesetzte UniFi-Equipment. Er ermöglicht die Konfiguration von WLAN-Netzwerken, VLANs, Firewall-Regeln und vielem mehr. Die UniFi-Geräte im Netzwerk verbinden sich mit diesem Controller, um ihre Konfiguration zu erhalten und Statusinformationen zu melden.
Lokale Anpassungen #
- Persistenter Speicher für Konfigurations- und MongoDB-Daten wird über
hostPath-Volumes konfiguriert, die auf einen NFS-Share zeigen. - Das Deployment stellt sowohl einen Ingress für den Webzugriff als auch einen LoadBalancer-Dienst für den direkten Zugriff und die Gerätekommunikation bereit.
- Der LoadBalancer-Dienst ist mit spezifischen IPv4- und IPv6-Adressen unter Verwendung von MetalLB konfiguriert.
- Mehrere Ports sind für die UniFi-Gerätekommunikation freigegeben (STUN, Gerätekommunikation, Webadministration, AP-Erkennung, L2-Netzwerk).
- Eine benutzerdefinierte
mongoinitConfigMap wird verwendet, um die MongoDB-Datenbank mit einem bestimmten Benutzer zu initialisieren.
Wichtige Einstellungen #
- Service-Typ: Der Controller wird über einen
LoadBalancer-Service mit einer dedizierten IP-Adresse im lokalen Netzwerk bereitgestellt. Dies ist notwendig, damit die UniFi-Geräte den Controller zuverlässig finden können (über den “Inform Host”). - Ingress: Zusätzlich ist die Weboberfläche über einen Ingress mit einem Hostnamen erreichbar.
- Zeitzone: Die Zeitzone ist auf
Europe/Berlingesetzt. - Speicher: Die Konfiguration des Controllers wird auf einem bestehenden Persistent Volume Claim (
unifi-controller-config) gespeichert.
Installation #
Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/unifi-controller-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:
1kubectl kustomize --enable-helm apps/unifi-controller | kubectl apply -n unifi-controller -f -
Abhängigkeiten #
- Ein laufender Kubernetes-Cluster.
- Ein konfigurierter Ingress-Controller (z.B. Traefik).
- Eine Zertifikatsmanagement-Lösung (z.B. cert-manager) zur Bereitstellung von TLS-Zertifikaten.
- MetalLB für die Zuweisung von LoadBalancer-IPs.
- Ein NFS-Server für persistenten Speicher.