Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

UniFi Netzwerk-Anwendung

Inhaltsverzeichnis

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
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo 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
#

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 mongoinit ConfigMap 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/Berlin gesetzt.
  • 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.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin