De open-source PaaS-platform Cozystack 0.37, gebouwd op Kubernetes, is beschikbaar. Het project is gericht op het bieden van een kant-en-klare platform voor hostingproviders en een framework voor het bouwen van private en publieke clouds. Het platform wordt rechtstreeks op servers geïnstalleerd en dekt alle aspecten van infrastructuurvoorbereiding voor het aanbieden van beheerde services. Cozystack maakt het mogelijk om Kubernetes-clusters, databases en virtuele machines uit te voeren en aan te bieden. De code van het platform is beschikbaar op GitHub en wordt verspreid onder de Apache-2.0-licentie.
Als basis technologie stack wordt Talos Linux en Flux CD gebruikt. Afbeeldingen met het systeem, de kernel en noodzakelijke modules worden van tevoren aangemaakt en atomair bijgewerkt, wat het mogelijk maakt om zonder componenten zoals dkms en pakketbeheerders te opereren, en garandeert een stabiele werking. Er is een eenvoudige installatie methode beschikbaar in een lege datacentrum via PXE en de debian-achtige installateur talos-bootstrap. Binnen het platform kunnen gebruikers met één klik Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics en andere diensten uitrollen.
Het platform omvat een gratis implementatie van de netwerkinfrastructuur (fabric) gebaseerd op Kube-OVN, en maakt gebruik van Cilium voor het organiseren van de service-netwerk, MetalLB voor het aankondigen van diensten naar buiten. De opslag is geïmplementeerd op LINSTOR, waarbij het gebruik van ZFS als basislaag voor de opslag en DRBD voor replicatie wordt aangeboden. Er is een vooraf ingestelde monitoringstack gebaseerd op VictoriaMetrics en Grafana. Voor de uitvoering virtuele machines wordt de KubeVirt-technologie gebruikt, die het mogelijk maakt om klassieke virtuele machines rechtstreeks in Kubernetes-containers uit te voeren en al de benodigde integraties heeft met de Cluster API voor het starten van beheerde Kubernetes-clusters binnen een 'fysiek' Kubernetes-cluster.
In de afgelopen anderhalve maand heeft het projectteam nieuwe versies 0.36 en 0.37 uitgebracht. Onder de wijzigingen in deze versies:
- De gebruikersinterface is vanaf nul herschreven. Het project openapi-ui dient als basis.

- In de interface is een clusterselectie toegevoegd. Momenteel werkt het dashboard in de modus van één cluster (één dashboard per cluster). In de toekomst zal dezelfde interface worden gebruikt voor de multi-cluster modus.
- Op het clusterscherm zijn nu meteen alle beschikbare namespaces zichtbaar. De lijst wordt samengesteld via de aggregerende laag van Kubernetes (tenant namespace), daarom worden alleen de namespaces weergegeven waarvoor toegang is.
- Het aanmaken van resources gaat nu via formulieren die automatisch zijn gegenereerd uit Kubernetes OpenAPI. Commentaar uit YAML is niet meer nodig; velden en validatie worden rechtstreeks uit de specificaties gehaald.
- De specificatie van nieuwe applicaties wordt gevormd uit Helm Charts met behulp van de cozy-values generator, en de ingevoerde velden in het formulier worden synchroon weerspiegeld in de uiteindelijke YAML.
- De beheermodules voor tenants zijn verplaatst naar het administratieve gedeelte: hier kunnen subtenants worden aangemaakt en specifieke modules/applicaties voor hen worden geïnstalleerd (toegang is afhankelijk van de rol en rechten van de gebruiker).
- Er is een tabblad met een VNC-console voor virtuele machines gepland. Voor sommige soorten resources zullen speciale tabbladen/velden worden toegevoegd (bijvoorbeeld voor KubeVirt-VM's).
- Het mechanisme voor resourcebeheer voor Cozystack-tenants is gestabiliseerd. Platformbeheerders kunnen nu expliciete limieten voor CPU, geheugen en opslag instellen voor elke tenant-namespace in de tenant-specificatie. Op deze manier kan geen enkele tenant alles 'opeten', waardoor andere tenants zonder middelen komen te zitten.
- De Kube-OVN Plunger-component is toegevoegd voor continue monitoring van de status van het centrale managementcluster van het Kube-OVN-netwerk. Een externe agent verzamelt de status van het OVN-cluster en consensusinformatie, toont Prometheus-metrics en een stroom van gebeurtenissen via SSE (Server-Sent Events).
- De CoreDNS-aanvulling wordt nu uitgerold via een Helm-chart en wordt geconfigureerd in de clusterspecificatie (automatische schaling, aantal replicas, service-IP, enz.). CoreDNS kan zowel via het dashboard als via de Cozystack API worden geconfigureerd.
- De S3-opslag op basis van SeaweedFS is flexibeler geworden op componentniveau. De Helm-chart maakt het mogelijk om elke component en zijn resources onafhankelijk in te stellen: master-nodes, volume-servers (met ondersteuning voor meerdere zones), de database en de S3-gateway. Beheerders kunnen voor elke component het aantal replicas, CPU/geheugengrenzen en opslagcapaciteit instellen.
- SeaweedFS 3.97 is geïntegreerd met ondersteuning voor server-side encryptie van S3-buckets (SSE-C, SSE-KMS, SSE-S3). Bij de update van Cozystack wordt de versie van SeaweedFS bijgewerkt en de servicespecificatie automatisch omgezet naar het nieuwe formaat.
- De NGINX-controller kan nu op het niveau van elke replica worden geconfigureerd: CPU- en geheugengrenzen kunnen direct worden ingesteld of er kan een van de vooraf ingestelde profielen worden gekozen.
- Als een virtuele machine een extern IP heeft toegewezen, wordt dit altijd gebruikt voor egress-verkeer, ongeacht de methode voor het toewijzen van dit IP.
Bron: opennet.ru

