The release of the open-source PaaS platform Cozystack 0.22.0, built on Kubernetes, is now available. The project aims to provide a ready-to-use platform for hosting providers and a framework for building private and public clouds. The platform installs directly on servers and covers all aspects of infrastructure setup for managed services. Cozystack allows for the deployment and provisioning of Kubernetes clusters, databases, and virtual machines. The platform's code is available on GitHub and is licensed under Apache-2.0.
The base technology stack uses Talos Linux and Flux CD. The images with the system, kernel, and necessary modules are pre-built and updated atomically, allowing for the avoidance of components such as dkms and package managers, while ensuring stable operation. A straightforward installation method is provided in an empty data center using PXE and the Debian-like installer talos-bootstrap.
The platform includes a free implementation of network infrastructure that is based on Kube-OVN and uses Cilium for organizing the service network, with MetalLB for announcing services externally. Storage is implemented on LINSTOR, which offers the use of ZFS as a base layer for storage and DRBD for replication. A pre-configured monitoring stack is based on VictoriaMetrics and Grafana. To launch of virtual machines KubeVirt technology is used, which allows for running traditional virtual machines directly in Kubernetes containers and already has all the necessary integrations with Cluster API for launching managed Kubernetes clusters within the 'bare-metal' Kubernetes cluster.
The new version includes the cozystack-controller and new entities: Workload and WorkloadMonitor — which allow monitoring the state of pods managed by operators and assessing service levels based on pre-defined rules. Applications in Cozystack are managed by different operators, hence the decision to create a unified format for displaying the status of each service.
How it works: When deploying an application, a WorkloadMonitor is set up, which monitors the state of pods based on a selector. As soon as one of the pods matches the selector, a new Workload entity is created for it, displaying the role of each pod and its state. The WorkloadMonitor status allows you to see the number of existing replicas and the minimum number of replicas necessary to service. If the workload becomes less than the minReplicas value for the WorkloadMonitor, the service is marked as non-operational.
For applications where an exact minReplicas value cannot be set (for example, Kubernetes workers can scale automatically), the option to omit this value in the WorkloadMonitor is implemented. In this case, the WorkloadMonitor will simply count the total number of running instances.
This mechanism allows the use of any operators and mechanisms for managing pods in Kubernetes and easily extends the platform by providing a unified interface for displaying the current service state.
The WorkloadMonitor for gathering information about replicas and their operability has been added to Kubernetes applications, Postgres, Monitoring, VirtualMachine, VMInstance, Redis, etcd, and SeaweedFS. The Cozystack dashboard now displays the number of application replicas and the service level for each Workload group.
Other changes:
- The client and server telemetry have been implemented and published under the Apache 2.0 license. Metrics for telemetry are collected according to the recommendations of the 'LF Telemetry Data Collection and Usage Policy' and can be disabled using the option 'telemetry-enabled: false' in the Cozystack configuration. The data itself is anonymous and fully depersonalized. A public Dashboard based on telemetry data is planned for future releases of the platform.
- The cluster-autoscaller component for Kubernetes has been updated, along with its settings, which allow for more efficient scaling of clusters both up and down.
- The MAINTAINERS file has been updated to list the participants managing the project and their areas of responsibility.
- A service application builder has been added to Cozystack, allowing the building of the platform directly in Kubernetes.
- For the VictoriaMetrics DBMS, the ability to specify custom parameters has been added, and default limits have been raised.
- Metrics collection from databases has been implemented for Grafana and Alerta.
- Alerts for the status of virtual machines and PostgreSQL clusters have been added.
- Metrics collection has been configured for KubeVirt, and a Grafana dashboard has been added.
- The Cozystack configuration has been updated with the option extra-keycloak-redirect-uri-for-dashboard, allowing for additional redirects for Keycloak.
- An error in VMInstance that blocked the connection of VMdisks to virtual machines has been fixed.
- 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, and Talos Linux 1.9.1 have been updated.
Source: opennet.ru
