Arquitectura del sistema base
Cómo se construye EasyUC sobre K3s: capas, espacios de nombres, servicios de datos, componentes por módulo, Ingress, almacenamiento y primera instalación.
K3s como base
EasyUC se ejecuta íntegramente sobre Kubernetes, en concreto sobre K3s. El clúster se inicializa con etcd integrado (cluster-init). etcd contiene el estado del clúster. Los nodos adicionales se unen más adelante como servidores y pasan a ser miembros de etcd; consulte Agregar nodos.
K3s proporciona además un registro integrado, de modo que las imágenes de contenedor se sirven dentro del clúster.
Capas
El sistema base consta de seis capas, de arriba abajo:
- Clientes y sistemas conectados: usuarios, agentes, puestos de operadora, CUCM y Microsoft Teams.
- Ingress de Traefik: acepta conexiones HTTPS y las enruta según la ruta.
- Componentes de la aplicación EasyUC: Deployments de Kubernetes creados por el operador.
- Servicios de datos: MariaDB, Elasticsearch y RabbitMQ, cada uno gestionado por su propio operador.
- Longhorn: almacenamiento en bloque para bases de datos y archivos, replicado entre nodos cuando hay varios.
- K3s: plano de control y etcd integrado en una o varias VM Linux.
Espacios de nombres
EasyUC usa dos espacios de nombres propios:
| Espacio de nombres | Contenido |
|---|---|
easyuc |
Aplicación EasyUC y el recurso personalizado EasyUC |
easyuc-system |
EasyUC Manager, instalado con Helm |
Servicios de datos y operadores
EasyUC usa tres servicios de datos. Cada uno lo gestiona su propio operador de Kubernetes, que se configura durante la primera instalación.
| Servicio | Función | Gestionado por |
|---|---|---|
| MariaDB | Base de datos para la configuración y los datos de negocio | Operador de MariaDB |
| Elasticsearch | Índice de búsqueda, entre otros para registros e historial de informes de llamadas | ECK (Elastic Cloud on Kubernetes) |
| RabbitMQ | Broker de mensajes | Operador de RabbitMQ |
Nota
La imagen y el tamaño de almacenamiento de los servicios de datos se definen en el recurso EasyUC. Con 4.8.7 son MariaDB 11.8.9, RabbitMQ 4.2.5 y Elasticsearch 9.5.4. Una actualización normal de EasyUC no sustituye los servicios de datos; consulte Actualizaciones.
Componentes por módulo
La aplicación consta de varios componentes, cada uno ejecutado como Deployment de Kubernetes. El operador los crea y los elimina según los módulos que estén activos.
Desde 4.8.7, todos los componentes se inician a partir de la misma imagen de contenedor. El EasyUC Manager es un producto independiente con su propia imagen.
| Módulo | Componentes | Notas |
|---|---|---|
| Núcleo (siempre) | admin-api, admin-ui, admin-workers, websocket, public-api |
Se ejecutan en todas las combinaciones de módulos. |
cucm |
curri-api, curri-nest, enduser-api, enduser-ui, jtapi, phonebook, proftpd |
proftpd es el servicio de carga de archivos para SFTP y FTP. |
acd |
acd-media |
Servicio de medios JTAPI/CTI con puertos CTI y locuciones. Se ejecuta en la red del host. |
teams |
teams-sbc, teams-ps |
teams-sbc: SBC basado en FreeSWITCH, en la red del host. teams-ps: configuración automatizada del tenant de Teams mediante PowerShell. |
presence |
presence-sync |
Sincroniza el estado de llamada entre CUCM y Teams. Es un servicio propio que se puede activar con independencia de los demás módulos. |
Nota
acd-media y teams-sbc se ejecutan en la red del host del nodo, por lo que sus puertos se enlazan directamente a la dirección IP de ese nodo. teams-sbc se coloca en el nodo donde se ejecuta acd-media. Los puertos se indican en Puertos y cortafuegos.
Ingress y rutas
Traefik acepta el tráfico web por HTTPS en TCP 443 y lo enruta según la ruta al componente correspondiente. Las rutas activas dependen de los módulos.
| Ruta | Interfaz o servicio |
|---|---|
/admin |
Interfaz de administración |
/enduser |
Portal de usuario final |
/agent |
Puesto de agente |
/manager |
EasyUC Manager, API en /manager-api |
| API | Interfaces de programación |
/curri-api |
Interfaz CURRI para CUCM |
Nota
Traefik también responde por HTTP en TCP 80. No hay configurada ninguna redirección automática a HTTPS. Hasta que active su propio certificado, Traefik usa uno autofirmado; consulte Certificados.
Almacenamiento
Longhorn proporciona almacenamiento en bloque para las bases de datos y los archivos. Con varios nodos, Longhorn replica los volúmenes entre los nodos. En un único nodo no son redundantes.
El Manager muestra los volúmenes de Longhorn con su estado, robustez y tamaño. El comportamiento de las réplicas cuando falla un nodo se describe en Redundancia.
Imágenes y registro
Desde 4.8.7, todos los componentes de la aplicación están en una única imagen de contenedor basada en Debian 13. Para una instalación, las imágenes se obtienen en línea del registro registry.easy-uc.com; para ello, el appliance necesita TCP 443 saliente hacia ese host. Para sitios sin acceso a Internet hay paquetes offline.
Las actualizaciones llegan como un único archivo de paquete firmado que usted carga en el Manager. El Manager distribuye la imagen a todos los nodos por sí mismo; consulte Actualizaciones sin acceso a Internet.
Primera instalación mediante el menú de consola
Tras el primer arranque de la VM, inicie sesión en la consola de la VM con el usuario easyuc. Aparece un menú de texto.
-
Seleccione Initialize K3s
La instalación se ejecuta offline a partir de archivos incluidos en el appliance. No se necesita acceso a Internet.
-
Se instalan los componentes
K3s, Traefik como Ingress, Longhorn como almacenamiento, los operadores de MariaDB, Elasticsearch (ECK) y RabbitMQ, y EasyUC Manager.
-
Continúe en el Manager
Todos los pasos siguientes se realizan en el navegador; consulte Instalación.
El mismo menú permite cambiar la dirección IP (solo en instalaciones de un único nodo), introducir sus fuentes horarias internas en NTP Server o desinstalar el sistema.
La contraseña inicial del Manager se genera de forma aleatoria para cada appliance. EasyUC no tiene contraseña predeterminada. La contraseña del primer administrador se define durante la configuración.