Está disponible el lanzamiento de la plataforma PaaS de código abierto Cozystack 0.40, construida sobre Kubernetes. El proyecto tiene como objetivo proporcionar una plataforma lista para proveedores de hosting y un marco para construir nubes privadas y públicas. La plataforma se instala directamente en los servidores y cubre todos los aspectos de preparación de la infraestructura para ofrecer servicios gestionados. Cozystack permite desplegar y administrar clústeres de Kubernetes, bases de datos y máquinas virtuales. El código de la plataforma está disponible en GitHub y se distribuye bajo la licencia Apache-2.0.
Como pila tecnológica básica se utiliza Talos Linux y Flux CD. Las imágenes del sistema, núcleo y módulos necesarios se crean con antelación y se actualizan de manera atómica, lo que permite prescindir de componentes como dkms y gestores de paquetes, garantizando así un funcionamiento estable. Se proporciona un método sencillo de instalación en un centro de datos vacío mediante PXE y el instalador tipo debian talos-bootstrap. Dentro de la plataforma se pueden desplegar con un clic Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics y otros servicios.
La plataforma incluye una implementación abierta de infraestructura de red (fabric) basada en Kube-OVN, y utiliza Cilium para organizar la red de servicios, MetalLB para anunciar servicios al exterior. El almacenamiento está implementado en LINSTOR, donde se propone utilizar ZFS como capa base para el almacenamiento y DRBD para la replicación. Hay una pila de monitoreo preconfigurada basada en VictoriaMetrics y Grafana. Para el lanzamiento de máquinas virtuales se utiliza la tecnología KubeVirt, que permite ejecutar máquinas virtuales clásicas directamente en contenedores de Kubernetes y ya tiene todas las integraciones necesarias con Cluster API para desplegar clústeres de Kubernetes gestionados dentro de un clúster de Kubernetes
En esta nueva versión:
- Se ha añadido un programador LINSTOR para la ubicación óptima de los pods. Un propio "scheduler extender" para Kubernetes funciona junto con el programador estándar de Kubernetes y ayuda a colocar los pods de manera óptima en los nodos con almacenamiento LINSTOR. Cuando un pod solicita un volumen de LINSTOR, el programador consulta al controlador de LINSTOR sobre qué nodos tienen réplicas locales de los volúmenes requeridos. Se da prioridad a los nodos donde los datos ya están presentes, lo que minimiza el tráfico de red y mejora el rendimiento de I/O. Además, se ha implementado un webhook de admission que dirige automáticamente los pods que utilizan volúmenes CSI de LINSTOR a su propio programador, asegurando una integración sin fisuras sin configuración manual.
- Almacenamiento SeaweedFS SeaweedFS se ha actualizado a la versión 4.05, en la que se ha optimizado el tráfico S3 (localidad de tráfico): las solicitudes ahora se envían a los servidores más cercanos, lo que reduce la latencia y acelera el funcionamiento del almacenamiento. También ha aparecido un nuevo componente de administración con interfaz web y soporte para autenticación, y trabajadores para llevar a cabo tareas distribuídas. Se han añadido paneles avanzados en Grafana que permiten supervisar los buckets, las llamadas a la API y el rendimiento. Se ha añadido soporte de certificados TLS para los componentes de administración y trabajadores.
- El mecanismo valuesFrom de FluxCD ha reemplazado las funciones de búsqueda en los charts de Helm. Esta mejora arquitectónica proporciona una transmisión de parámetros más limpia y elimina la necesidad de controladores de sincronización forzada (reconciliation). La configuración de ConfigMaps y referencias a servicios ahora se gestiona de manera centralizada a través de la clave cozystack-values en cada espacio de nombres.
- En los componentes para la integración con LINSTOR se ha implementado soporte para la función auto-diskful, que convierte los nodos sin disco (diskless) en nodos con disco (diskful) si mantienen recursos DRBD en estado Primario durante más de 30 minutos.
- Se han implementado sistemas automáticos de gestión de versiones para PostgreSQL, Kubernetes, MariaDB y Redis, que rastrean actualizaciones en los repositorios upstream y proporcionan mecanismos para la actualización automática de versiones.
Fuente: opennet.ru
