Este disponibilă versiunea platformei PaaS Cozystack 0.33, construită pe baza Kubernetes. Proiectul își propune să ofere o platformă gata făcută pentru furnizorii de hosting și un cadru pentru construirea de cloud-uri private și publice. Platforma se instalează direct pe servere și acoperă toate aspectele pregătirii infrastructurii pentru furnizarea de servicii gestionate. Cozystack permite rularea și furnizarea de clustere Kubernetes, baze de date și mașini virtuale. Codul platformei este disponibil pe GitHub și este distribuit sub licența Apache-2.0.
Ca stivă de tehnologie de bază se folosește Talos Linux și Flux CD. Imaginile cu sistemul, kernelul și modulele necesare sunt formate anterior și se actualizează atomic, ceea ce permite evitarea componentelor precum dkms și managerul de pachete, garantând o funcționare stabilă. Se oferă o metodă simplă de instalare într-un centru de date gol prin PXE și instalatorul talos-bootstrap similar cu Debian. În cadrul platformei, se pot desfășura servicii precum Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics și altele, printr-un simplu clic.
Platforma include o implementare gratuită a infrastructurii rețelii (fabric) bazată pe Kube-OVN, și utilizează Cilium pentru organizarea rețelei de servicii, MetalLB pentru anunțarea serviciilor în exterior. Stocarea este implementată pe LINSTOR, unde se propune utilizarea ZFS ca strat de bază pentru stocare și DRBD pentru replicare. Există un stivă de monitorizare presetată bazată pe VictoriaMetrics și Grafana. Pentru lansarea mașinilor virtuale se utilizează tehnologia KubeVirt, care permite rularea de mașini virtuale tradiționale direct în containerele Kubernetes și are deja toate integrarea necesare cu Cluster API pentru a lansa clustere Kubernetes gestionate în interiorul clusterei Kubernetes „bare-metal”.
În ultimele o lună și jumătate, echipa proiectului a lansat noile versiuni 0.31, 0.32 și 0.33. Printre modificările din aceste versiuni se numără:
- Gestionarea alocării resurselor CPU și memorie a fost unificată. Au fost adăugate variabile de configurare comune cpu-allocation-ratio și memory-allocation-ratio pentru limitarea resurselor CPU și consumului de memorie în mașinile virtuale gestionate de KubeVirt. Variabilele se aplică tuturor aplicațiilor gestionate și cotelor de resurse ale tenant-ilor. Preconfigurările iau de asemenea în considerare coeficientii de alocare a resurselor și se comportă la fel ca definițiile explicite ale resurselor. La actualizarea de la versiunile anterioare ale Cozystack, configurația resurselor în aplicațiile gestionate este convertită automat în noul format.
- A fost adăugată funcția de backup PVC în clusterele Kubernetes tenant-ului, permițând administratorilor atât pentru întreaga platformă, cât și pentru anumite tenant-uri, să creeze backup-uri și să restaureze datele serviciilor rulate în clustere. Proiectul Velero este folosit pentru backup, iar sistemul necesită un stoc extern compatibil S3.
- A fost implementat suportul pentru utilizarea de stocări NFS comune cu noul modul opțional de sistem.
- A fost adăugată posibilitatea de a configura soclurile CPU disponibile pentru mașinile virtuale prin parametrul resources.cpu.sockets, permițând alocarea de socluri specifice mașinilor virtuale.
- A fost adăugat suport pentru utilizarea imaginilor golden preîncărcate pentru mașinile virtuale, accelerând pregătirea prin referințe la imagini existente în loc de descărcarea prin HTTP.
- A fost implementată opțiunea exposeMethod pentru Ingress-NGINX în clusterele tenant-ului, care permite selectarea Proxied și LoadBalancer.
- Suport îmbunătățit pentru aplicațiile Java: parametrii „heap” sunt acum calculați pe baza cererilor și limitelor de memorie.
- Managerul standard de pachete a fost înlocuit — în loc de Helm, acum se folosește noua utilitară cozypkg (un wrapper pentru Helm și Flux pentru dezvoltarea locală).
- A fost adăugat un sincronizator HelmRelease pentru componentele de sistem, care asigură controlul automat al schimbărilor cheie de configurație pentru actualizarea timely a aplicațiilor de sistem.
- A fost adăugat suport pentru registry mirror în clusterele Kubernetes tenant, configurând containerd pentru clusterele tenant.
- A fost implementată o etichetare unificată a obiectelor fiice ale aplicațiilor pentru monitorizare prin WorkloadMonitors.
- A fost adădată opțiunea cluster-domain pentru a suprascrie domeniul cozy.local.
- Au fost adăugate reguli RBAC pentru redirecționarea porturilor în KubeVirt (SSH prin virtctl).
- A fost activată colectarea evenimentelor și jurnalelor de audit.
- A fost implementat backup-ul/restaurarea pentru PostgreSQL.
- A fost adălat un nou instrument cozyreport și s-a asigurat colectarea raportelor în CI. Acum toate informațiile de diagnosticare sunt păstrate sub formă de artefacte de compilare.
- Componentele au fost actualizate: 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.
- A fost oferită posibilitatea instalării Talos în medii Air Gap.
- A fost adăugat suport GPU pentru clusterele Kubernetes tenant. Utilizatorii platformei pot rula workload-uri GPU atât în mașini virtuale, cât și în clustere Kubernetes.
- A fost asigurată suport beta pentru arhitectura ARM (compilare cross-arhitecturală). Sistemul de compilare a fost redesenat pentru a suporta fișiere binare și imagini container multi-arhitecturale.
- VerticalPodAutoscaler (VPA) a fost extins, inclus pentru un număr mai mare de componente Cozystack și permite ajustarea automată a resurselor. În special, VPA a fost adăugat pentru control plane-urile clustere tenant. panoul de control Cozystack și etcd-operator. Toate componentele Cozystack cu VPA activat pot ajusta automat cerințele lor de CPU și memorie în funcție de utilizarea acestora, ceea ce îmbunătățește stabilitatea.
- A fost adăugat suport pentru Gateway API în Cilium, permițând utilizarea caracteristicilor avansate de rutare L4/L7 prin Kubernetes Gateway API.
- A fost oferită posibilitatea de a adăuga parametrii proprii în configurațiile Cilium pentru clustere tenant.
- În controllerul Tenant HelmRelease Reconcile, s-a asigurat difuzarea schimbărilor de configurație către sarcinile de lucru ale tenant-ilor (garantează că orice HelmRelease definit în tenant este sincronizat cu actualizările platformei).
- A fost adăugată posibilitatea de a regla coeficientul de alocare a CPU în KubeVirt (modul în care CPU-urile virtuale se corelează cu cele fizice) prin valoarea cpu-allocation-ratio în configmap. Administratorii pot ajusta overcommit-ul CPU pentru mașinile virtuale, păstrând un echilibru necesar între performanță și densitate.
- A fost implementat exportul mașinilor virtuale KubeVirt. Funcția funcționează prin VirtualMachineExport în KubeVirt și permite utilizatorilor să creeze instantanee sau copii de rezervă ale imaginilor mașinilor virtuale.
- A fost asigurată suportul pentru diferite clase de stocare (storage classes) pentru mașinile virtuale. Aplicația virtual-machine permite selectarea oricărei StorageClass pentru discul de sistem al mașinii virtuale, în locul utilizării unui PVC prestabilit (vezi valorile systemDisk.storage și systemDisk.storageClass în configurația aplicației).
Sursa: opennet.ro
