Architecture du système de base
Structure d'EasyUC sur K3s : couches, espaces de noms, services de données, composants par module, Ingress, stockage et première installation.
K3s comme fondation
EasyUC fonctionne entièrement sur Kubernetes, plus précisément sur K3s. Le cluster est initialisé avec etcd intégré (cluster-init). etcd contient l'état du cluster. Les nœuds ajoutés par la suite rejoignent le cluster en tant que serveurs et deviennent membres etcd. Consultez Ajouter des nœuds.
K3s fournit également un registre intégré, de sorte que les images de conteneur sont servies à l'intérieur du cluster.
Couches
Le système de base se compose de six couches, de haut en bas :
- Clients et systèmes raccordés : utilisateurs, agents, postes de standard, CUCM et Microsoft Teams.
- Ingress Traefik : accepte les connexions HTTPS et les route selon le chemin.
- Composants applicatifs EasyUC : Deployments Kubernetes créés par l'opérateur.
- Services de données : MariaDB, Elasticsearch et RabbitMQ, chacun géré par son propre opérateur.
- Longhorn : stockage bloc pour les bases de données et les fichiers, répliqué entre les nœuds lorsqu'il y en a plusieurs.
- K3s : plan de contrôle et etcd intégré sur une ou plusieurs VM Linux.
Espaces de noms
EasyUC utilise deux espaces de noms qui lui sont propres :
| Espace de noms | Contenu |
|---|---|
easyuc |
Application EasyUC et ressource personnalisée EasyUC |
easyuc-system |
EasyUC Manager, installé avec Helm |
Services de données et opérateurs
EasyUC utilise trois services de données. Chacun est géré par son propre opérateur Kubernetes, mis en place lors de la première installation.
| Service | Rôle | Géré par |
|---|---|---|
| MariaDB | Base de données pour la configuration et les données métier | Opérateur MariaDB |
| Elasticsearch | Index de recherche, notamment pour les journaux et l'historique des rapports d'appels | ECK (Elastic Cloud on Kubernetes) |
| RabbitMQ | Broker de messages | Opérateur RabbitMQ |
Remarque
L'image et la taille de stockage des services de données sont définies dans la ressource EasyUC. Avec la version 4.8.7, il s'agit de MariaDB 11.8.9, RabbitMQ 4.2.5 et Elasticsearch 9.5.4. Une mise à jour normale d'EasyUC ne remplace pas les services de données. Consultez Mises à jour.
Composants par module
L'application se compose de plusieurs composants, chacun exécuté comme Deployment Kubernetes. L'opérateur les crée et les supprime en fonction des modules actifs.
Depuis la version 4.8.7, tous les composants démarrent à partir de la même image de conteneur. L'EasyUC Manager est un produit distinct avec sa propre image.
| Module | Composants | Remarques |
|---|---|---|
| Cœur (toujours) | admin-api, admin-ui, admin-workers, websocket, public-api |
Présents dans toutes les combinaisons de modules. |
cucm |
curri-api, curri-nest, enduser-api, enduser-ui, jtapi, phonebook, proftpd |
proftpd est le service d'import de fichiers pour SFTP et FTP. |
acd |
acd-media |
Service média JTAPI/CTI avec ports CTI et annonces. Fonctionne dans le réseau de l'hôte. |
teams |
teams-sbc, teams-ps |
teams-sbc : SBC basé sur FreeSWITCH, dans le réseau de l'hôte. teams-ps : configuration automatisée du tenant Teams via PowerShell. |
presence |
presence-sync |
Synchronise l'état d'appel entre CUCM et Teams. Service à part entière, activable indépendamment des autres modules. |
Remarque
acd-media et teams-sbc fonctionnent dans le réseau de l'hôte du nœud : leurs ports sont donc liés directement à l'adresse IP de ce nœud. teams-sbc est placé sur le nœud où s'exécute acd-media. Les ports sont listés dans Ports et pare-feu.
Ingress et chemins
Traefik accepte le trafic web en HTTPS sur TCP 443 et le route selon le chemin vers le composant concerné. Les chemins actifs dépendent des modules.
| Chemin | Interface ou service |
|---|---|
/admin |
Interface d'administration |
/enduser |
Portail utilisateur |
/agent |
Poste agent |
/manager |
EasyUC Manager, API sous /manager-api |
| API | Interfaces de programmation |
/curri-api |
Interface CURRI pour CUCM |
Remarque
Traefik répond également en HTTP sur TCP 80. Aucune redirection automatique vers HTTPS n'est configurée. Tant que vous n'avez pas activé votre propre certificat, Traefik utilise un certificat auto-signé. Consultez Certificats.
Stockage
Longhorn fournit le stockage bloc pour les bases de données et les fichiers. Avec plusieurs nœuds, Longhorn réplique les volumes entre les nœuds. Sur un nœud unique, ils ne sont pas redondants.
Le Manager affiche les volumes Longhorn avec leur état, leur robustesse et leur taille. Le comportement des réplicas en cas de panne d'un nœud est décrit dans Redondance.
Images et registre
Depuis la version 4.8.7, tous les composants de l'application se trouvent dans une seule image de conteneur basée sur Debian 13. Pour une installation, les images proviennent en ligne du registre registry.easy-uc.com ; l'appliance a besoin pour cela du port TCP 443 sortant vers cet hôte. Pour les sites sans accès Internet, il existe des paquets hors ligne.
Les mises à jour sont livrées sous la forme d'un seul fichier de paquet signé que vous importez dans le Manager. Le Manager distribue lui-même l'image sur tous les nœuds. Consultez Mises à jour sans accès Internet.
Première installation via le menu de la console
Après le premier démarrage de la VM, connectez-vous sur la console de la VM avec l'utilisateur easyuc. Un menu texte s'affiche.
-
Sélectionnez Initialize K3s
L'installation s'exécute hors ligne à partir des fichiers fournis dans l'appliance. Aucun accès Internet n'est nécessaire.
-
Installation des composants
K3s, Traefik comme Ingress, Longhorn comme stockage, les opérateurs pour MariaDB, Elasticsearch (ECK) et RabbitMQ, ainsi qu'EasyUC Manager.
-
Poursuivez dans le Manager
Toutes les étapes suivantes se déroulent dans le navigateur. Consultez Installation.
Le même menu permet de modifier l'adresse IP (installations à nœud unique uniquement), de saisir vos sources de temps internes sous NTP Server ou de désinstaller le système.
Le mot de passe initial du Manager est généré aléatoirement pour chaque appliance. EasyUC n'a pas de mot de passe par défaut. Vous définissez le mot de passe du premier administrateur lors de la configuration.