Lanzamiento de Cozystack 0.33, una plataforma PaaS de código abierto basada en Kubernetes

Se ha lanzado la versión libre de la plataforma PaaS Cozystack 0.33, 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 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 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 los últimos mes y medio, el equipo del proyecto ha lanzado nuevas versiones 0.31, 0.32 y 0.33. Entre los cambios en estas versiones:

  • Se ha unificado la gestión de la asignación de recursos CPU y memoria. Se han agregado variables de configuración comunes cpu-allocation-ratio y memory-allocation-ratio para limitar los recursos de CPU y el consumo de memoria en máquinas virtuales gestionadas por KubeVirt. Las variables se aplican a todas las aplicaciones gestionadas y a las cuotas de recursos de los inquilinos. Las predefiniciones también consideran los coeficientes de asignación de recursos y se comportan como definiciones de recursos explícitas. Al actualizar desde versiones anteriores de Cozystack, la configuración de recursos en las aplicaciones gestionadas se convierte automáticamente al nuevo formato.
  • Se ha añadido la función de backup de PVC en los clústeres de Kubernetes de los inquilinos, que permite a los administradores tanto de toda la plataforma como de inquilinos individuales crear copias de seguridad y restaurar los datos de los servicios ejecutados en los clústeres. Para la copia de seguridad se utiliza el proyecto Velero, y el sistema requiere un almacenamiento externo compatible con S3.
  • Se ha implementado el soporte para el uso de almacenamiento compartido NFS con un nuevo módulo de sistema opcional.
  • Se ha añadido la posibilidad de configurar los sockets de CPU disponibles para las máquinas virtuales a través del parámetro resources.cpu.sockets, lo que permite asignar sockets específicos a las máquinas virtuales.
  • Se ha añadido soporte para el uso de imágenes golden pre-cargadas para máquinas virtuales, acelerando la preparación mediante referencias a imágenes existentes en lugar de cargas HTTP.
  • Se ha implementado la opción exposeMethod para Ingress-NGINX en clústeres de inquilinos, que permite seleccionar Proxied y LoadBalancer.
  • Mejorado el soporte para aplicaciones Java: los parámetros ‘heap’ ahora se calculan en función de las solicitudes y límites de memoria.
  • Se ha reemplazado el gestor de paquetes estándar: en lugar de Helm, ahora se utiliza la nueva herramienta cozypkg (una envoltura alrededor de Helm y Flux para el desarrollo local).
  • Se ha añadido un sincronizador HelmRelease para componentes del sistema, que proporciona un control automático de los cambios clave de configuración para la actualización oportuna de las aplicaciones del sistema.
  • Se ha agregado soporte para mirror del registro en clústeres Kubernetes de inquilinos, configurando containerd para dichos clústeres.
  • Se ha implementado una marca única para los objetos secundarios de las aplicaciones para el monitoreo a través de WorkloadMonitors.
  • Se ha añadido la opción cluster-domain para sobrescribir el dominio cozy.local.
  • Se han añadido reglas RBAC para el reenvío de puertos en KubeVirt (SSH a través de virtctl).
  • Se ha habilitado la recopilación de eventos y registros de auditoría.
  • Se ha implementado la copia de seguridad/restauración de PostgreSQL.
  • Se ha añadido una nueva herramienta cozyreport y se ha asegurado la recopilación de informes en CI. Ahora, toda la información diagnóstica se guarda en forma de artefactos de compilación.
  • Se han actualizado los componentes: cozykpg v1.1.0, flux-operator 0.23.0, Flux 2.6.x, Talos Linux v1.10.3, Cilium 1.17.4, MetalLB 0.15.2, Kube-OVN 1.13.13, cozy-proxy 0.2.0, Kafka Operator 0.45.1-rc1.
  • Se ha proporcionado la posibilidad de instalar Talos en entornos Air Gap.
  • Se ha añadido soporte para GPU en clústeres Kubernetes de inquilinos. Los usuarios de la plataforma pueden ejecutar cargas de trabajo de GPU tanto en máquinas virtuales como en clústeres de Kubernetes.
  • Se ha asegurado soporte beta para la arquitectura ARM (compilación cruzada). El sistema de construcción se ha reestructurado para soportar binarios y contenedores multiarquitectura.
  • Se ha ampliado el VerticalPodAutoscaler (VPA), que ahora está habilitado para más componentes de Cozystack y permite la configuración automática de recursos. En particular, el VPA se ha añadido para clústeres de inquilinos del plano de control. el panel de control Cozystack y etcd-operator. Todos los componentes de Cozystack con VPA habilitado pueden ajustar automáticamente sus solicitudes de CPU y memoria en función de su uso, lo que mejora la estabilidad.
  • Se ha añadido soporte para Gateway API en Cilium, permitiendo el uso de funciones avanzadas de enrutamiento L4/L7 a través de Kubernetes Gateway API.
  • Se ha proporcionado la posibilidad de agregar parámetros personalizados en las configuraciones de Cilium para clústeres de inquilinos.
  • En el controlador Tenant HelmRelease Reconcile se garantiza la difusión de cambios de configuración a las cargas de trabajo de los inquilinos (asegura que cualquier HelmRelease definido en el inquilino esté sincronizado con las actualizaciones de la plataforma).
  • Se ha añadido la posibilidad de configurar el coeficiente de asignación de CPU en KubeVirt (cómo las CPU virtuales se relacionan con las físicas) a través del valor cpu-allocation-ratio en configmap. Los administradores pueden configurar el overcommit de CPU para las máquinas virtuales, manteniendo el equilibrio necesario entre rendimiento y densidad.
  • Se ha implementado la exportación de máquinas virtuales KubeVirt. La función funciona a través de VirtualMachineExport en KubeVirt y permite a los usuarios crear instantáneas o copias de seguridad de imágenes de máquinas virtuales.
  • Se ha asegurado la compatibilidad con diferentes clases de almacenamiento (storage classes) para las máquinas virtuales. La aplicación virtual-machine permite seleccionar cualquier StorageClass para el disco del sistema de la máquina virtual en lugar de utilizar un PVC predefinido (ver los valores systemDisk.storage y systemDisk.storageClass en la configuración de la aplicación).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster