Se ha publicado la versión de la plataforma PaaS libre Cozystack 0.17.0, construida sobre Kubernetes. El proyecto está diseñado para proporcionar una plataforma lista para los proveedores de hosting y un marco para construir nubes privadas y públicas. La plataforma se instala directamente en los servidores y abarca todos los aspectos de la preparación de la infraestructura para ofrecer servicios gestionados. Cozystack permite ejecutar y proporcionar 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 de tecnologías básica se utiliza Talos Linux y Flux CD. Las imágenes del sistema, el núcleo y los módulos necesarios se crean con antelación y se actualizan de manera atómica, lo que permite prescindir de componentes como dkms y un gestor de paquetes, garantizando un funcionamiento estable. Se proporciona un método sencillo de instalación en un centro de datos vacío mediante PXE y un instalador similar a debian llamado talos-bootstrap.
La plataforma incluye una implementación abierta de infraestructura de red (fabric) basado 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 ofrece el uso de ZFS como capa base para el almacenamiento y DRBD para la replicación. Hay un stack de monitorización preconfigurado basado en VictoriaMetrics y Grafana. Para el lanzamiento máquinas virtuales se utiliza la tecnología KubeVirt, que permite ejecutar máquinas virtuales clásicas directamente en contenedores de Kubernetes y que ya tiene todas las integraciones necesarias con Cluster API para lanzar clústeres de Kubernetes gestionados dentro de un clúster de Kubernetes ‘físico’.
En la nueva versión:
- La plataforma ahora permite crear máquinas virtuales con múltiples discos, realizar instalaciones desde CD-ROM y transferir discos de una máquina virtual a otra. La antigua aplicación 'Virtual Machine' se ha dividido en dos aplicaciones separadas: 'vm-disk' (Disco de Máquina Virtual) y 'vm-instance' (Instancia de Máquina Virtual). La aplicación vm-disk soporta la carga de imágenes desde HTTP o dispositivos locales; al crear un disco se puede especificar la fuente y el tipo de imagen: CD-ROM o clásico. La aplicación vm-instance permite iniciar una máquina virtual a partir de los discos creados. La posibilidad de utilizar la antigua aplicación Virtual Machine se ha mantenido para compatibilidad.
- Se han añadido las opciones instanceType e instanceProfile, así como un conjunto de instancias predeterminadas y perfiles para Ubuntu, RHEL, Alpine y Windows. Se ha proporcionado la posibilidad de configurar la máquina virtual con parámetros óptimos dependiendo del SO (por ejemplo, habilitar TPM y dispositivos virtio, usar un tablet-pointer), y en lugar de especificar recursos para la máquina virtual se pueden utilizar instancias estandarizadas, diseñadas específicamente para ciertos tipos de carga. Los tipos de instancias también se aplican a Kubernetes, lo que permite planificar mejor sus grupos de nodos.
- Se ha añadido la opción de habilitar el proxy en ingress para la carga de imágenes desde máquinas locales, así como se ha actualizado CDI para un mejor funcionamiento con dispositivos de bloques. Se ha implementado la carga de imágenes para LINSTOR utilizando la utilidad virtctl.
- Se ha añadido soporte para máquinas virtuales con Windows. Se ha probado la instalación de Windows 10 y Windows Server 2k15 desde ISO utilizando los nuevos vm-disk y vm-instance, con posterior cambio a los controladores VirtIO.
- Al solicitar buckets S3, se ha implementado el despliegue automático de una interfaz web para acceder a ellos. A través de la interfaz web, se pueden cargar y eliminar archivos, así como generar enlaces temporales para acceso público. La interfaz se basa en s3manager, distribuido bajo la licencia Apache 2.0.

- Se han añadido alertas para FluxCD que muestran el estado de las versiones. Las alertas están estructuradas y ahora se dividen en categorías, además, el campo Resource ahora muestra el recurso problemático.
- Ahora es posible enviar alertas a Telegram con deduplicación y botones para gestionar el ciclo de vida de cada alerta.
- Se ha incluido el controlador MachineHealthChecks en el Cluster API, que supervisará el estado de los nodos en el clúster de Kubernetes. En caso de problemas, los nodos se reordenarán automáticamente.
- Se ha añadido el componente external-dns, que permite configurar automáticamente los registros DNS en Cloudflare. Además, se ha implementado la posibilidad de solicitar certificados a través de la API de Cloudflare utilizando el método DNS.
- Se ha añadido external-secrets-operator, que permite sincronizar secretos con sistemas externos.
- Se han introducido componentes opcionales, que están desactivados por defecto, pero disponibles para habilitar mediante la opción bundle-enable en la configuración de Cozystack.
- Se han mejorado los trabajos para la inicialización de PostgreSQL y FerretDB, que ahora esperan a que la base esté activa antes de realizar cualquier acción de configuración.
- Se ha mejorado la estabilidad de Kube-OVN. Se ha deshabilitado la comunicación con NetworkManager. En algunos sistemas, este problema bloqueaba el inicio de los controladores de OVN.
- Se ha añadido una configuración de logs para Clickhouse. Los logs se han trasladado a una sección separada y se ha configurado la rotación.
- Se han actualizado los componentes: LINSTOR 1.29.1, Talos Linux 1.8.1 y Cilium 1.16.3.
Fuente: opennet.ru

