De uitgave van de gratis PaaS-platform Cozystack 0.33, gebouwd op Kubernetes, is beschikbaar. Het project is gericht op het aanbieden van een kant-en-klare oplossing voor hostingproviders en een framework voor het opbouwen van privé en publieke clouds. Het platform wordt rechtstreeks op servers geïnstalleerd en dekt alle aspecten van de infrastructuurvoorbereiding voor het aanbieden 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 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 afgelopen anderhalve maand heeft het projectteam nieuwe versies 0.31, 0.32 en 0.33 uitgebracht. Onder de wijzigingen in deze uitgaven:
- Geünificeerde beheersing van CPU- en geheugenallocatie. Nieuwe configuratievariabelen cpu-allocation-ratio en memory-allocation-ratio zijn toegevoegd om de CPU-hulpbronnen en het geheugenverbruik in virtuele machines die door KubeVirt worden beheerd te limiteren. De variabelen zijn van toepassing op alle beheerde applicaties en resource-quota's van tenants. Voorinstellingen houden ook rekening met de allocatiecoëfficiënten van hulpbronnen en gedragen zich hetzelfde als expliciete resource-definities. Bij een update van eerdere versies van Cozystack wordt de resource-configuratie in beheerde applicaties automatisch omgezet naar het nieuwe formaat.
- Een functie voor het maken van back-ups van PVC's in tenant Kubernetes-clusters is toegevoegd, waarmee beheerders van zowel het platform als individuele tenants back-ups kunnen maken en gegevens van actieve services in de clusters kunnen herstellen. Voor de back-up wordt het Velero-project ingeschakeld, en het systeem vereist een externe S3-compatibele opslag.
- Ondersteuning voor het gebruik van gedeelde NFS-opslag met een nieuwe optionele systeemmodule is geïmplementeerd.
- De mogelijkheid om beschikbare CPU-sockets voor virtuele machines in te stellen via de parameter resources.cpu.sockets is toegevoegd, waardoor specifieke sockets aan virtuele machines kunnen worden toegewezen.
- Ondersteuning voor het gebruik van vooraf geladen golden afbeeldingen voor virtuele machines is toegevoegd, wat de voorbereiding versnelt door te verwijzen naar bestaande afbeeldingen in plaats van ze via HTTP te laden.
- De optie exposeMethod voor Ingress-NGINX in tenant-clusters is geïmplementeerd, waarmee de keuze voor Proxied en LoadBalancer kan worden gemaakt.
- Verbeterde ondersteuning voor Java-applicaties: de 'heap'-parameters worden nu berekend op basis van aanvragen en geheugengrensen.
- De standaardpakketbeheerder is vervangen - in plaats van Helm wordt nu de nieuwe tool cozypkg gebruikt (een wrapper rond Helm en Flux voor lokale ontwikkeling).
- Een HelmRelease-synchronisator voor systeembestanddelen is toegevoegd, die automatische controle van belangrijke configuratiewijzigingen biedt voor tijdige updates van systeemapplicaties.
- Ondersteuning voor een registry mirror in tenant Kubernetes-clusters is toegevoegd, die containerd voor tenant-clusters configureert.
- Een uniforme labeling van applicatiedochterobjecten voor monitoring via WorkloadMonitors is geïmplementeerd.
- Een cluster-domeinoptie is toegevoegd om het domein cozy.local te overschrijven.
- RBAC-regels voor poortdoorvoer in KubeVirt (SSH via virtctl) zijn toegevoegd.
- De verzameling van evenementen en auditlogs is ingeschakeld.
- Back-up/herstel van PostgreSQL is geïmplementeerd.
- Een nieuw hulpmiddel, cozyreport, is toegevoegd en de verzameling van rapporten in CI is gegarandeerd. Nu wordt alle diagnostische informatie opgeslagen als build-artifacten.
- Componenten zijn bijgewerkt: cozykpg v1.1.0, flux-operator 0.23.0, Flux 2.6.x, Talos Linux v1.10.3, Cilium 1.17.4, MetalLB 0.15.2, Kube-OVN 1.13.13, cozy-proxy 0.2.0, Kafka Operator 0.45.1-rc1.
- Installatie van Talos in Air Gap-omgevingen is mogelijk gemaakt.
- Ondersteuning voor GPU is toegevoegd voor tenant Kubernetes-clusters. Gebruikers van het platform kunnen GPU-workloads uitvoeren in zowel virtuele machines als Kubernetes-clusters.
- Bètasteun voor ARM-architectuur is gegarandeerd (cross-architectuur bouwen). Het buildsysteem is herzien voor ondersteuning van multi-architectuur binaries en containerafbeeldingen.
- VerticalPodAutoscaler (VPA) is uitgebreid en ingeschakeld voor meer Cozystack-componenten, waardoor automatische resource-optimalisatie mogelijk is. In het bijzonder is VPA toegevoegd voor control plane tenant-clusters. beheerderspaneel Cozystack en etcd-operator. Alle Cozystack-componenten met ingeschakelde VPA kunnen automatisch hun CPU- en geheugenvragen aanpassen op basis van hun gebruik, wat de stabiliteit verhoogt.
- Ondersteuning voor de Gateway API in Cilium is toegevoegd, wat geavanceerde L4/L7-routeringsfuncties via de Kubernetes Gateway API mogelijk maakt.
- De mogelijkheid om eigen parameters toe te voegen aan Cilium-configuraties voor tenant-clusters is verstrekt.
- In de Tenant HelmRelease Reconcile-controller is de verspreiding van configuratiewijzigingen naar tenant-werkbelasting gewaarborgd (zorgt ervoor dat elke HelmRelease die in de tenant is gedefinieerd, is gesynchroniseerd met platformupdates).
- De mogelijkheid om de CPU-toewijzingscoëfficiënt in KubeVirt in te stellen (de verhouding van virtuele CPU's tot fysieke) is toegevoegd via de waarde cpu-allocation-ratio in het configmap. Beheerders kunnen overcommit CPU voor virtuele machines instellen, met inachtneming van de noodzakelijke balans tussen prestaties en dichtheid.
- Export van KubeVirt-virtuële machines is geïmplementeerd. De functie werkt via VirtualMachineExport in KubeVirt en stelt gebruikers in staat om snapshots of back-ups van virtuele machine-images te maken.
- Ondersteuning voor verschillende opslagklassen (storage classes) voor virtuele machines is verzekerd. De applicatie virtual-machine stelt het mogelijk om elke StorageClass voor de systeemschijf van de virtuele machine te kiezen in plaats van een vaste PVC te gebruiken (zie de waarden systemDisk.storage en systemDisk.storageClass in de applicatieconfiguratie).
Bron: opennet.ru
