De public release van het vrije PaaS-platform Cozystack 0.22.0, gebouwd op Kubernetes, is beschikbaar. Het project is gericht op het aanbieden van een kant-en-klaar platform voor hostingproviders en een framework voor het opzetten van privé en openbare clouds. Het platform wordt direct op servers geïnstalleerd en dekt alle aspecten van de infrastructuurvoorbereiding voor het leveren van beheerde diensten. Cozystack maakt het mogelijk om Kubernetes-clusters, databases en virtuele machines te draaien en aan te bieden. De code van het platform is beschikbaar op GitHub en wordt verspreid onder de Apache-2.0-licentie.
Als basis techstack wordt Talos Linux en Flux CD gebruikt. De afbeeldingen met het besturingssysteem, de kernel en de benodigde modules worden van tevoren samengesteld en worden atomair bijgewerkt, waardoor componenten zoals dkms en pakketbeheerders kunnen worden vermeden en stabiele werking kan worden gegarandeerd. Er is een eenvoudige installatiemethode beschikbaar in een lege datacenter met behulp van PXE en een Debian-achtige installer talos-bootstrap.
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 nieuwe versie zijn de cozystack-controller en nieuwe entiteiten toegevoegd: Workload en WorkloadMonitor - die het mogelijk maken om de status van pod-ven, beheerd door operators, te volgen en het serviceniveau te beoordelen volgens vooraf gedefinieerde regels. Applicaties in Cozystack worden beheerd door verschillende operators, daarom is besloten om een uniform formaat te creƫren voor het weergeven van de status van elke dienst.
Hoe het werkt: Bij de implementatie van een applicatie wordt ook een WorkloadMonitor geĆÆnstalleerd, die de status van pod-ven volgt op basis van de selector. Zodra een van de pod-ven door de selector wordt opgevangen, wordt er een nieuwe entiteit Workload aangemaakt, die de rol van elke pod en zijn status weergeeft. In de status van WorkloadMonitor kan het aantal bestaande replicaties en het minimum aantal replicaties dat nodig is voor de service worden gezien. Zodra de belasting (workload) minder wordt dan de waarde van minReplicas voor WorkloadMonitor, wordt de service gemarkeerd als niet-operationeel (non-operational).
Voor applicaties waarvoor geen exacte waarde voor minReplicas kan worden opgegeven (bijvoorbeeld Kubernetes-werkers die automatisch kunnen schalen), is de mogelijkheid geĆÆmplementeerd om deze waarde helemaal niet op te geven in WorkloadMonitor. In dit geval zal WorkloadMonitor gewoon het totale aantal actieve instanties tellen.
Dit mechanisme maakt het mogelijk om elke operator en controlemechanismen voor pod-ven in Kubernetes te gebruiken en het platform eenvoudig uit te breiden door een uniforme interface te bieden voor het weergeven van de huidige staat van de service.
WorkloadMonitor voor het verzamelen van informatie over replicaties en hun werkzaamheid is toegevoegd aan de Kubernetes-, Postgres-, Monitoring-, VirtualMachine-, VMInstance-, Redis-, etcd- en SeaweedFS-applicaties. Het Cozystack-dashboard toont nu het aantal replicaties van de applicatie en het serviceniveau voor elke Workload-groep.
Andere wijzigingen:
- De client en server voor telemetrie zijn gerealiseerd en gepubliceerd onder de Apache 2.0-licentie. Het verzamelen van metrics voor telemetrie gebeurt volgens de aanbevelingen van het "LF Telemetry Data Collection and Usage Policy" en kan worden uitgeschakeld via de optie "telemetry-enabled: false" in de Cozystack-configuratie. De gegevens zijn anoniem en volledig geanonimiseerd. Voor komende platformreleases is het de bedoeling om een openbaar dashboard te creƫren op basis van de telemetriegegevens.
- De cluster-autoscaler component voor Kubernetes is bijgewerkt, evenals de instellingen die het mogelijk maken om clusters efficiƫnter te schalen, zowel omhoog als omlaag.
- Het MAINTAINERS-bestand is bijgewerkt, waarin de deelnemers die het project ondersteunen en hun verantwoordelijkheidsgebieden zijn vermeld.
- In Cozystack is een service-applicatie builder toegevoegd, waarmee de platformassemblage rechtstreeks in Kubernetes kan worden uitgevoerd.
- Voor de database VictoriaMetrics is de mogelijkheid toegevoegd om eigen parameters op te geven en zijn de standaardlimieten verhoogd.
- Voor Grafana en Alerta is de verzameling van metrics uit databases gerealiseerd.
- Alerts over de status van virtuele machines en PostgreSQL-clusters zijn toegevoegd.
- Voor KubeVirt is de verzameling van metrics ingesteld en is een Grafana-dashboard toegevoegd.
- In de Cozystack-configuratie is de optie extra-keycloak-redirect-uri-for-dashboard toegevoegd, waarmee extra omleidingen voor Keycloak kunnen worden ingesteld.
- In VMInstance is een fout opgelost die de verbinding van VM-disks met virtuele machines blokkeerde.
- 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 en Talos Linux 1.9.1 zijn bijgewerkt.
Bron: opennet.ru
