Se ha lanzado la versión libre de la plataforma PaaS Cozystack 0.22.0, construida sobre Kubernetes. El proyecto está dirigido a 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 la prestación de servicios gestionados. Cozystack permite lanzar 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’.
La nueva versión incluye el cozystack-controller y nuevas entidades: Workload y WorkloadMonitor, que permiten supervisar el estado de los pods gestionados por los operadores y evaluar el nivel de servicio según reglas previamente definidas. Las aplicaciones en Cozystack son gestionadas por diferentes operadores, por lo que se decidió crear un formato único para mostrar el estado de cada servicio.
Cómo funciona: Al desplegar una aplicación, se instala un WorkloadMonitor que supervisa el estado de los pods mediante un selector. Una vez que uno de los pods es seleccionado por el selector, se crea una nueva entidad Workload para él, que muestra el rol de cada pod y su estado. En el estado de WorkloadMonitor se puede ver el número de réplicas existentes y el número mínimo de réplicas necesario para mantener el servicio. Cuando la carga (workload) es menor que el valor minReplicas para WorkloadMonitor, el servicio se marca como no operativo (non-operational).
Para las aplicaciones a las que no se les puede asignar un valor exacto de minReplicas (por ejemplo, los workers de Kubernetes pueden escalar automáticamente), se ha implementado la posibilidad de no especificar este valor en WorkloadMonitor. En este caso, el WorkloadMonitor simplemente contará el número total de instancias en ejecución.
Este mecanismo permite utilizar cualquier operador y mecanismo de gestión de pods en Kubernetes y extender fácilmente la plataforma, proporcionando una interfaz única para mostrar el estado actual del servicio.
Se ha añadido WorkloadMonitor para recopilar información sobre las réplicas y su operatividad en aplicaciones de Kubernetes, Postgres, Monitoring, VirtualMachine, VMInstance, Redis, etcd y SeaweedFS. El dashboard de Cozystack ahora muestra el número de réplicas de la aplicación y el nivel de servicio para cada grupo de Workload.
Otros cambios:
- Se han realizado y publicado bajo la licencia Apache 2.0 el cliente y el servidor de telemetría. La recopilación de métricas para la telemetría se lleva a cabo de acuerdo con las recomendaciones de la "Política de recopilación y uso de datos de telemetría de LF" y se puede desactivar usando la opción "telemetry-enabled: false" en la configuración de Cozystack. Los datos en sí son anónimos y completamente despersonalizados. Se planea construir un Dashboard público basado en los datos de telemetría para las próximas versiones de la plataforma.
- Se ha actualizado el componente cluster-autoscaller para Kubernetes, así como sus configuraciones, que permiten escalar clústeres de manera más eficiente, tanto hacia arriba como hacia abajo.
- Se ha actualizado el archivo MAINTAINERS, que enumera a los participantes que mantienen el proyecto y sus áreas de responsabilidad.
- Se ha añadido una aplicación de servicio builder en Cozystack, que permite compilar la plataforma directamente en Kubernetes.
- Para la base de datos VictoriaMetrics se ha añadido la capacidad de especificar parámetros propios y se han aumentado los límites predeterminados establecidos.
- Se ha implementado la recopilación de métricas de bases de datos para Grafana y Alerta.
- Se han añadido alertas sobre el estado de las máquinas virtuales y los clústeres postgres.
- Para KubeVirt, se ha configurado la recopilación de métricas y se ha añadido un dashboard de Grafana.
- Se ha añadido a la configuración de Cozystack la opción extra-keycloak-redirect-uri-for-dashboard, que permite configurar redirecciones adicionales para Keycloak.
- Se ha corregido un error en VMInstance que bloqueaba la conexión de VMdisks a las máquinas virtuales.
- Se han actualizado Flux Operator 0.12.0, Flux Instance chart 0.12.0, Cilium 1.16.5, Kube-OVN 1.13.2, CNPG PostgreSQL Operator 1.25.0, Talos Linux 1.9.1.
Fuente: opennet.ru
