Architektur des Basissystems
Wie EasyUC auf K3s aufgebaut ist: Schichten, Namespaces, Datendienste, Komponenten je Modul, Ingress, Speicher und Erstinstallation.
K3s als Grundlage
EasyUC läuft vollständig auf Kubernetes, genauer auf K3s. Der Cluster wird mit eingebettetem etcd initialisiert (cluster-init). etcd hält den Zustand des Clusters. Weitere Nodes treten später als Server bei und werden etcd-Mitglieder, siehe Nodes hinzufügen.
K3s bringt außerdem eine eingebettete Registry mit. Die Container-Images werden damit innerhalb des Clusters bereitgestellt.
Schichten
Das Basissystem besteht aus sechs Schichten, von oben nach unten:
- Clients und angebundene Systeme: Benutzer, Agenten, Vermittlungsplätze, CUCM und Microsoft Teams.
- Traefik-Ingress: nimmt HTTPS-Verbindungen an und leitet sie anhand des Pfads weiter.
- EasyUC-Anwendungskomponenten: Kubernetes-Deployments, die der Operator anlegt.
- Datendienste: MariaDB, Elasticsearch und RabbitMQ, jeweils von einem eigenen Operator verwaltet.
- Longhorn: Blockspeicher für Datenbanken und Dateien, bei mehreren Nodes zwischen den Nodes repliziert.
- K3s: Control Plane und eingebettetes etcd auf einer oder mehreren Linux-VMs.
Namespaces
EasyUC nutzt zwei eigene Namespaces:
| Namespace | Inhalt |
|---|---|
easyuc |
EasyUC-Anwendung und die Custom Resource EasyUC |
easyuc-system |
EasyUC Manager, per Helm installiert |
Datendienste und Operatoren
Für Daten nutzt EasyUC drei Dienste. Jeder wird von einem eigenen Kubernetes-Operator verwaltet, der bei der Erstinstallation mit eingerichtet wird.
| Dienst | Aufgabe | Verwaltet durch |
|---|---|---|
| MariaDB | Datenbank für Konfiguration und Geschäftsdaten | MariaDB-Operator |
| Elasticsearch | Suchindex, unter anderem für Logs und den Verlauf der Anrufberichte | ECK (Elastic Cloud on Kubernetes) |
| RabbitMQ | Message Broker | RabbitMQ-Operator |
Hinweis
Image und Speichergröße der Datendienste stehen in der EasyUC-Ressource. Stand 4.8.7 laufen MariaDB 11.8.9, RabbitMQ 4.2.5 und Elasticsearch 9.5.4. Ein normales EasyUC-Update ersetzt die Datendienste nicht, siehe Updates.
Komponenten je Modul
Die Anwendung besteht aus mehreren Komponenten, jede läuft als Kubernetes-Deployment. Der Operator legt sie an und entfernt sie wieder, je nachdem, welche Module aktiv sind.
Seit 4.8.7 starten alle Komponenten aus demselben Container-Image. Der EasyUC Manager ist ein eigenes Produkt mit eigenem Image.
| Modul | Komponenten | Hinweise |
|---|---|---|
| Kern (immer) | admin-api, admin-ui, admin-workers, websocket, public-api |
Laufen in jeder Modulkombination. |
cucm |
curri-api, curri-nest, enduser-api, enduser-ui, jtapi, phonebook, proftpd |
proftpd ist der Upload-Dienst für SFTP und FTP. |
acd |
acd-media |
JTAPI/CTI-Mediendienst mit CTI-Ports und Ansagen. Läuft im Host-Netzwerk. |
teams |
teams-sbc, teams-ps |
teams-sbc: SBC auf Basis von FreeSWITCH, im Host-Netzwerk. teams-ps: automatische Einrichtung des Teams-Tenants per PowerShell. |
presence |
presence-sync |
Gleicht den Anrufstatus zwischen CUCM und Teams ab. Eigener Dienst, unabhängig von den anderen Modulen zuschaltbar. |
Hinweis
acd-media und teams-sbc laufen im Host-Netzwerk des Nodes. Ihre Ports liegen direkt auf der IP-Adresse dieses Nodes. teams-sbc wird auf dem Node platziert, auf dem acd-media läuft. Die Ports stehen unter Ports und Firewall.
Ingress und Pfade
Traefik nimmt die Webzugriffe per HTTPS auf TCP 443 entgegen und leitet sie anhand des Pfads an die zuständige Komponente weiter. Welche Pfade aktiv sind, hängt von den Modulen ab.
| Pfad | Oberfläche oder Dienst |
|---|---|
/admin |
Administrationsoberfläche |
/enduser |
Enduser-Portal |
/agent |
Agenten-Arbeitsplatz |
/manager |
EasyUC Manager, API unter /manager-api |
| APIs | Programmierschnittstellen der Anwendung |
/curri-api |
CURRI-Schnittstelle für CUCM |
Hinweis
Traefik antwortet auch auf HTTP über TCP 80. Eine automatische Umleitung auf HTTPS ist nicht eingerichtet. Bis Sie ein eigenes Zertifikat aktivieren, verwendet Traefik ein selbstsigniertes Zertifikat, siehe Zertifikate.
Speicher
Longhorn stellt Blockspeicher für die Datenbanken und für Dateien bereit. Bei mehreren Nodes repliziert Longhorn die Volumes zwischen den Nodes. Bei einem einzelnen Node sind sie nicht redundant.
Im Manager sehen Sie die Longhorn-Volumes mit Status, Robustheit und Größe. Wie sich die Replikate bei einem Ausfall verhalten, beschreibt Redundanz.
Images und Registry
Alle Anwendungskomponenten stecken seit 4.8.7 in einem einzigen Container-Image auf Basis von Debian 13. Für eine Installation kommen die Images online aus der Registry registry.easy-uc.com, dafür braucht die Appliance ausgehend TCP 443 zu diesem Host. Für Standorte ohne Internetzugang gibt es Offline-Bundles.
Updates kommen als eine signierte Paketdatei, die Sie im Manager hochladen. Der Manager verteilt das Image selbst auf alle Nodes, siehe Updates ohne Internetzugang.
Erstinstallation über das Konsolenmenü
Nach dem ersten Start der VM melden Sie sich an der VM-Konsole als Benutzer easyuc an. Es erscheint ein Textmenü.
-
Initialize K3s wählen
Die Installation läuft offline aus Dateien, die in der Appliance enthalten sind. Ein Internetzugang ist nicht nötig.
-
Komponenten werden installiert
K3s, Traefik als Ingress, Longhorn als Speicher, die Operatoren für MariaDB, Elasticsearch (ECK) und RabbitMQ sowie der EasyUC Manager.
-
Im Manager weiterarbeiten
Die weiteren Schritte erledigen Sie im Browser, siehe Installation.
Im selben Menü ändern Sie bei Bedarf die IP-Adresse (nur bei Installationen mit einem Node), tragen unter NTP Server Ihre internen Zeitquellen ein oder deinstallieren das System.
Das Anfangspasswort des Managers wird für jede Appliance zufällig erzeugt. EasyUC selbst hat kein Standardpasswort. Das Passwort des ersten Administrators setzen Sie bei der Einrichtung.