Está disponible la versión de la plataforma PaaS Cozystack 0.37, 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 abarca todos los aspectos de la preparación de 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 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) 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 los últimos mes y medio, el equipo del proyecto ha lanzado nuevas versiones 0.36 y 0.37. Entre los cambios en estas versiones:
- La interfaz de usuario ha sido reescrita desde cero. Se ha utilizado el proyecto openapi-ui como base.

- En la interfaz ha aparecido un selector de clúster. Ahora el dashboard funciona en modo de un solo clúster (un dashboard por clúster). En el futuro, esta misma interfaz se utilizará para el modo multiclúster.
- En la pantalla del clúster ahora se pueden ver de inmediato todos los espacios de nombres disponibles. La lista se forma a través de la capa agregadora de Kubernetes (tenant namespace), por lo que solo se muestran los espacios a los que se tiene acceso.
- La creación de recursos ahora se realiza a través de formularios generados automáticamente a partir de Kubernetes OpenAPI. No se necesitan comentarios de YAML: los campos y la validación se toman directamente de las especificaciones.
- La especificación de nuevas aplicaciones se forma a partir de Helm charts con la ayuda del generador cozy-values, y los campos introducidos en el formulario se reflejan de manera sincrónica en el YAML final.
- Los módulos de gestión de tenantes se han trasladado a la sección de administración: aquí se pueden crear subtenantes y colocar módulos/aplicaciones específicos para ellos (el acceso depende del rol y los derechos del usuario).
- Se planea añadir una pestaña con la consola VNC para máquinas virtuales. Para ciertos tipos de recursos, se añadirán pestañas/campos especiales (por ejemplo, para VM de KubeVirt).
- Se ha estabilizado el mecanismo de gestión de recursos para los tenants de Cozystack. Los administradores de la plataforma ahora pueden establecer límites explícitos de CPU, memoria y almacenamiento para cada namespace de tenant en la especificación del tenant. Así, ninguno de los tenants puede "comerse" todos los recursos, dejando a otros tenants sin ellos.
- Se ha añadido el componente Kube-OVN Plunger para el monitoreo continuo del estado del clúster de control de la red Kube-OVN. Un agente externo recopila el estado del clúster OVN y la información sobre el consenso, mostrando métricas de Prometheus y un flujo de eventos a través de SSE (Eventos Enviados por el Servidor).
- El complemento CoreDNS ahora se despliega a través de un gráfico Helm y se configura en la especificación del clúster (escalado automático, número de réplicas, IP del servicio, etc.). CoreDNS se puede configurar tanto en el panel como a través de la API de Cozystack.
- El almacenamiento S3 basado en SeaweedFS se ha vuelto más flexible a nivel de componentes. El gráfico Helm permite configurar de forma independiente cada componente y sus recursos: nodos maestros, servidores de volumen (con soporte para múltiples zonas), base de datos y puerta de enlace S3. Los administradores pueden establecer para cada componente el número de réplicas, límites de CPU/memoria y volumen de almacenamiento.
- Se ha integrado el sistema de archivos SeaweedFS 3.97 con soporte para el cifrado en servidor de los buckets S3 (SSE-C, SSE-KMS, SSE-S3). Al actualizar Cozystack, se actualizará la versión de SeaweedFS y la especificación de los servicios se transformará automáticamente al nuevo formato.
- El controlador NGINX ahora se configura a nivel de cada réplica: se pueden establecer límites/peticiones de CPU y memoria directamente o elegir uno de los presets predefinidos.
- Si a una máquina virtual se le asigna una IP externa, esta siempre se utiliza para el tráfico de salida, independientemente del método de asignación de esta IP.
Fuente: opennet.ru

