The free PaaS platform Cozystack 0.40, based on Kubernetes, is now available. The project aims to provide a ready-made platform for hosting providers and a framework for building private and public clouds. The platform is installed directly on servers and covers all aspects of infrastructure preparation for providing managed services. Cozystack allows running and providing Kubernetes clusters, databases, and virtual machines. The platform's code is available on GitHub and is distributed under the Apache-2.0 license.
Talos Linux and Flux CD are used as the foundational technology stack. The images with the system, kernel, and necessary modules are pre-built and updated atomically, which eliminates the need for components like dkms and package managers, ensuring stable operation. A simple installation method is provided in an empty data center using PXE and the Debian-like talos-bootstrap installer. The platform allows deploying Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics, and other services with a single click.
The platform includes a free implementation of network infrastructure (fabric) based on Kube-OVN, and uses Cilium for organizing the service network, MetalLB for announcing services externally. Storage is implemented on LINSTOR, where ZFS is offered as the base layer for storage and DRBD for replication. There's a preconfigured monitoring stack based on VictoriaMetrics and Grafana. To run virtual machines, the KubeVirt technology is used, which allows classic virtual machines to run directly in Kubernetes containers and already has all the necessary integrations with Cluster API for launching managed Kubernetes clusters within a 'bare metal' Kubernetes cluster.
In the new release:
- A LINSTOR scheduler has been added for optimal placement of pods. The custom 'scheduler extender' for Kubernetes works alongside the standard Kubernetes scheduler and helps optimally place pods on nodes with LINSTOR storage. When a pod requests a LINSTOR volume, the scheduler checks with the LINSTOR controller to see which nodes have local replicas of the required volumes. Priority is given to nodes where data is already present, minimizing network traffic and enhancing I/O performance. Additionally, an admission webhook has been implemented that automatically directs pods using LINSTOR CSI volumes to the custom scheduler, ensuring seamless integration without manual configuration.
- SeaweedFS Storage SeaweedFS has been updated to version 4.05, which optimizes S3 traffic (traffic locality): requests are now routed to the nearest servers, reducing latency and speeding up storage operations. A new admin component with a web interface and authentication support has also been introduced, along with workers for executing distributed tasks. Advanced dashboards have been added to Grafana to monitor buckets, API calls, and performance. for TLS certificates for the admin and worker components.
- The valuesFrom mechanism from FluxCD has replaced lookup functions in Helm charts. This architectural improvement ensures cleaner parameter passing and eliminates the need for forced reconciliation controllers. Configuration from ConfigMaps and service references is now centrally managed through the cozystack-values key in each namespace.
- Support for the auto-diskful function has been implemented in the components for integration with LINSTOR, which converts diskless nodes to diskful if they hold DRBD resources in the Primary state for more than 30 minutes.
- Automated version control systems have been implemented for PostgreSQL, Kubernetes, MariaDB, and Redis, which monitor updates in upstream repositories and provide mechanisms for automatic version upgrades.
Source: opennet.ru
