De vrijgegeven versie van het PaaS-platform Cozystack 0.40, gebouwd op Kubernetes, is nu beschikbaar. Het project is gericht op het bieden van een kant-en-klare platform voor hostingproviders en een framework voor het opzetten van privé- en publieke clouds. Het platform wordt rechtstreeks op servers geïnstalleerd en dekt alle aspecten van infrastructuurvoorbereiding voor het aanbieden van beheerde services. Cozystack stelt gebruikers in staat om Kubernetes-clusters, databases en virtuele machines te draaien en te leveren. 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) op basis van Kube-OVN, en maakt gebruik van Cilium voor het organiseren van het servicenetwerk, MetalLB voor het aankondigen van diensten naar buiten toe. De opslag is geïmplementeerd op LINSTOR, waar het gebruik van ZFS als basisslaag voor de opslag en DRBD voor replicatie wordt aangeboden. Er is een vooraf geconfigureerde monitoringsstack op basis van VictoriaMetrics en Grafana. Voor het draaien van virtuele machines wordt de KubeVirt-technologie gebruikt, die klassieke virtuele machines in Kubernetes-containers kan draaien en al alle vereiste integraties met Cluster API heeft voor het draaien van beheerde Kubernetes-clusters binnen een 'bare metal' Kubernetes-cluster.
In de nieuwe release:
- De LINSTOR-scheduler is toegevoegd voor optimale plaatsing van pods. De eigen 'scheduler extender' voor Kubernetes werkt samen met de standaard Kubernetes-scheduler en helpt bij het optimaal plaatsen van pods op knooppunten met LINSTOR-opslag. Wanneer een pod om een LINSTOR-volume vraagt, vraagt de scheduler aan de LINSTOR-controller op welke knooppunten lokale replica's van de benodigde volumes aanwezig zijn. Prioriteit gaat naar knooppunten waar de gegevens al aanwezig zijn, wat de netwerkbelasting minimaliseert en de I/O-prestaties verhoogt. Daarnaast is er een admission webhook geïmplementeerd die automatisch pods die gebruikmaken van LINSTOR CSI-volumes naar de eigen scheduler leidt, wat een naadloze integratie zonder handmatige configuratie garandeert.
- Opslag SeaweedFS is bijgewerkt naar versie 4.05, waarin de S3-verkeeroptimalisatie (traffic locality) is doorgevoerd: verzoeken gaan nu naar de dichtstbijzijnde servers, wat de latentie verkort en de opslag versnelt. Er is ook een nieuwe admin-component geïntroduceerd met een webinterface en ondersteuning voor autorisatie, evenals workers voor het uitvoeren van gedistribueerde taken. In Grafana zijn geavanceerde dashboards toegevoegd waarmee de buckets, API-aanroepen en prestaties kunnen worden gevolgd. Ondersteuning is toegevoegd TLS-certificaten voor de admin- en worker-componenten.
- Het valuesFrom-mechanisme van FluxCD heeft de lookup-functies in Helm-charts vervangen. Deze architectonische verbetering zorgt voor een schonere parameteroverdracht en elimineert de noodzaak voor controllers voor geforceerde synchronisatie (reconciliation). Configuraties uit ConfigMaps en verwijzingen naar services worden nu centraal beheerd via de sleutel cozystack-values in elke namespace.
- In de componenten voor integratie met LINSTOR is ondersteuning geïmplementeerd voor de auto-diskful-functie, die diskless knooppunten omzet in diskful knooppunten als deze gedurende meer dan 30 minuten DRBD-resources in de Primary-status vasthouden.
- Automatische versiesystemen zijn geïmplementeerd voor PostgreSQL, Kubernetes, MariaDB en Redis, die updates in upstream-repositories volgen en mechanismen voor automatische versie-updates bieden.
Bron: opennet.ru
