Na voljo je izdaja odprte PaaS platforme Cozystack 1.4, zgrajene na osnovi Kubernetesa. Projekt je usmerjen v zagotavljanje končne platforme za ponudnike gostovanja in okvir za gradnjo zasebnih in javnih oblakov. Platforma se namesti neposredno na strežnike in pokriva vse vidike priprave infrastrukture za zagotavljanje upravljanih storitev. Cozystack omogoča zagon in ponudbo Kubernetes klasterjev, baz podatkov in virtualne stroje. Koda platforme je na voljo na GitHubu in je licencirana pod Apache-2.0.
Platforma vključuje brezplačno implementacijo omrežne infrastrukture (fabric) na osnovi Kube-OVN ter uporablja Cilium za organizacijo storitvene mreže, MetalLB za napoved storitev navzven. Shranjevanje je izvedeno na LINSTOR, kjer je predlagana uporaba ZFS kot osnovnega sloja za shranjevanje in DRBD za replikacijo. Na voljo je prednastavljena tehnološka steza za spremljanje na osnovi VictoriaMetrics in Grafana. Za zagon virtualnih naprav se uporablja tehnologija KubeVirt, ki omogoča zagon klasičnih virtualnih mašin neposredno v Kubernetes kontejnerjih ter že ima vse potrebne integracije s Cluster API za zagon upravljanih Kubernetes grozdov znotraj 'železnega' Kubernetes grozda. V okviru platforme lahko z enim klikom namestite Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics in druge storitve.
Glavne novosti v Cozystack 1.4.0:
- Predstavljen je nov uporabniški vmesnik, temelječ na projektu cozystack-ui. Stari sklad openapi-ui in BFF je nadomeščen s front-endom na React 19 in TypeScript, ki deluje neposredno z Kubernetes API. Poleg tega je v vmesniku dodana podpora za dinamične VNC WebSocket URL za virtualne strežnike, runtime blagovno znamko preko ConfigMap, branje ApplicationDefinition za katalog aplikacij in preusmeritev starih naslovov /openapi-ui/*.
- Za worker vozlišča najemniških klasterjev je bila implementirana trajna shrambe. Virtualni strežniki worker vozlišč zdaj uporabljajo PVC diske prek KubeVirt dataVolumeTemplates namesto emptyDisk. Zaradi tega se kubelet certifikati, kubeconfig in stanje containerd ohranijo po ponovnem zagonu virtualnega strežnika. Polje ephemeralStorage je preimenovano v diskSize, dodana je nastavitev storageClass na ravni NodeGroup. Med migracijo se stare vrednosti samodejno pretvorijo.
- Dodana je nova shema prednastavitev virov po podobnosti s tipi virtualnih strežnikov pri oblačnih ponudnikih. Prednastavitve so opisane v formatu ., kjer serije t1, c1, s1, u1 in m1 določajo različna razmerja CPU in pomnilnika, velikosti pa se gibljejo od nano do 4xlarge. Na voljo je skupno 40 možnosti. Stare oznake prednastavitev so bile ohranjene kot zastarele alije in se samodejno migrirajo brez spremembe dejanskih meja CPU in pomnilnika.
- Razširjen je sistem deklarativnega rezervnega kopiranja upravljanih aplikacij. Kontroler backupstrategy je prejel strategije za PostgreSQL, MariaDB, ClickHouse in FoundationDB. Podprti so BackupClass, Plan, BackupJob in RestoreJob, načrtovane in enkratne varnostne kopije, obnavljanje na mestu in obnavljanje iz kopije. Podatki se izvažajo v S3-združljivo objektno shrambo, poverilnice pa se prenašajo preko Kubernetes Secret.
- Dodan je neobavezan sistemski paket hami s HAMi 2.8.1 za zajednički pristup NVIDIA GPU-u u tenantskim klasterima. Korisnički workload-ovi mogu tražiti resurse nvidia.com/gpu, nvidia.com/gpumem i nvidia.com/gpucores, što omogućava raspodelu vGPU između više pod-ova. Aktivacija se vrši preko parametra hami.enabled i zahteva NVIDIA GPU Operator.
- Uvedena je jedinstvena postavka publishing.proxyProtocol za aktiviranje PROXY protokola na hostovima s ingress-nginx. Kada je ova postavka aktivirana, automatski se implementira Ouroboros, koji rešava problem hairpin-NAT za pozive iz klastera ka njegovim javnim imenima. Za tenantske klastere predviđeno je dodatak addons.ouroboros.enabled.
- U cozystack-operator dodate su postavke za generisanje HelmRelease: interval, retry interval, install timeout, upgrade timeout i max history. Strategija ponovnog pokušaja postavljena je na RetryOnFailure, a za određene aplikacije može se postaviti timeout putem anotacije release.cozystack.io/helm-install-timeout. Ovo rešava niz problema tokom hladnog pokretanja tenantskih klastera.
- Za worker-čvorove tenantskog Kutbernetesa automatski se izračunava rezervacija resursa kubelet-a za CPU i memoriju. Anotacije cluster-autoscaler sada odražavaju dodeljene resurse, a ne ukupan obim CPU i memorije.
- Osnovni komponente platforme su ažurirane: Talos 1.13.0, cert-manager 1.20.2, Cilium 1.19.3, NVIDIA GPU Operator 26.3.1, etcd-operator 0.4.3, KubeVirt 1.8.2, cozy-proxy 0.3.0, linstor-csi 1.10.6. Dodati su novi paketi HAMi 2.8.1 i Ouroboros 0.7.2.
- Poboljšana je dijagnostika: cozyreport sada sakuplja informacije o Flux-u, cert-manager-u, host-okruženju, Application, ApplicationDefinition i Tenant-resursima, kao i formira summary.txt s kratkim pregledom trenutnih problema. Dodati su Grafana-dashboards i pravila za prikupljanje podataka za praćenje GPU-a.
- Ispravljene su greške u MongoDB, Kafka, tenant Kubernetes bootstrap, etcd, Velero, Kamaji, LINSTOR, SeaweedFS, Harbor, objectstorage-controller, API i drugim komponentama. U API-ju je otklonjena IDOR-ranjivost u obradnicima TenantNamespace Get i Watch.
Prilikom ažuriranja, treba imati u vidu da će se worker-čvorovi tenantskih klastera zameniti redosledom zbog prelaska na trajne PVC-diskove. Virtuelne mašine KubeVirt, pokrenute pre ažuriranja platforme, zahtevaće hladno ponovno pokretanje nakon prelaska na KubeVirt 1.8.2, budući da živa migracija starih virt-launcher procesa može imati grešku zbog promene verzije QEMU. Pored toga, parametri PostgreSQL sada su tipizovani i proveravaju se prema denylist-u, a cert-manager 1.20 podrazumevano pokreće kontejnere s UID/GID 65532.
Izvor: opennet.ru
