Saadavusele on välja antud Cozystack 1.4, mis on avatud PaaS platvorm, ehitatud Kubernetes'e baasil. Projekti eesmärk on pakkuda valmis platvormi hostiteenuste pakkujatele ja raamistikku privaatsete ja avalike pilvede ehitamiseks. Platvorm installitakse otse serveritesse ja katab kõik infrastruktuuri ettevalmistamise aspektid hallatud teenuste pakkumiseks. Cozystack võimaldab käivitada ja pakkuda Kubernetes'e klastreid, andmebaase ja virtuaalmasinatele. Platvormi kood on saadaval GitHubis ja levitatakse Apache-2.0 litsentsi all.
Platvorm sisaldab vaba võrgu-infrastruktuuri (fabric), mis põhineb Kube-OVN-ile, ning kasutab Cilium'i teenusetevõrgu korraldamiseks ja MetalLB-d teenuste väliskülgede reklaamimiseks. Andmete salvestamine on realiseeritud LINSTORis, pakkudes ZFS-i kui alussalvestuse taset ja DRBD-d replikatsiooniks. Saadaval on eelseadistatud monitooringu padrun VictoriaMetrics ja Grafana baasil. Käivitamiseks virtuaalmasinad kasutatakse KubeVirt tehnoloogiat, mis võimaldab käivitada klassikalisi virtuaalmasinaid otse Kubernetes konteinerites ning omab juba kõiki vajalikke integratsioone Cluster API-ga, et käivitada hallatud Kubernetes klistreid „rauda” paigutatud Kubernetes klastris. Platvormi raames on võimalik vaid ühe klikiga käitada Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics ja muid teenuseid.
Cozystack 1.4.0 peamised uuendused:
- Esmakordselt on tutvustatud uut juhtimistarkvara, mis põhineb projektis cozystack-ui. Vanad openapi-ui ja BFF tehnoloogiad on asendatud React 19 ja TypeScript'i esiosas, mis töötab otse Kubernetes API'ga. Lisaks on liidesele lisatud dünaamiliste VNC WebSocket URL-ide tugi virtuaalmasinate jaoks, runtime brändimine ConfigMap'i kaudu, rakenduse definitsioonide lugemine rakenduste kataloogis ning vanade aadresside /openapi-ui/* suunamine.
- Töötajate sõlmedes tenantide klastrites on rakendatud püsiv ladustamine. Virtuaalmasinate töötaja sõlmed kasutavad nüüd PVC-diske KubeVirt dataVolumeTemplates'i kaudu, mitte emptyDisk'i. Tänu sellele säilivad kubelet'i sertifikaadid, kubeconfig ja containerd'i olek virtuaalmasina taaskäivituse järel. Väli ephemeralStorage on ümber nimetatud diskSize'iks, lisatud on storageClass seadistus NodeGroup'i tasemel. Migratsiooni käigus muudetakse vanad väärtused automaatselt.
- Lisatud on uus ressursi presetide skeem, mis põhineb pilveteenuse pakkujate virtuaalmasinate tüüpide analoogial. Presetid on kirja pandud formaadis ., kus seeriad t1, c1, s1, u1 ja m1 määravad erinevad CPU ja mälu suhted, ning suurused on vahemikus nano kuni 4xlarge. Kokku on saadaval 40 varianti. Vanad presetide nimed on säilitatud kui vananenud aliasid ja migratsioon toimub automaatselt ilma tegelike CPU ja mälu piirangute muutmiseta.
- Hallatud rakenduste deklaratiivse varundamise süsteem on laiendatud. Backupstrategy kontroller sai strateegiad PostgreSQL, MariaDB, ClickHouse ja FoundationDB jaoks. Toetatakse BackupClass'i, Plani, BackupJob'i ja RestoreJob'i, regulaarset ja ühekordset varundamist, kohapealset taastamist ja koopiat. Andmed laaditakse S3-ühilduvasse objektihoidlasse ning autentimisandmed edastatakse Kubernetes Secret'i kaudu.
- Lisatud valikuline süsteemipakett hami versiooniga HAMi 2.8.1, et võimaldada kooskasutust NVIDIA GPU-dega mitmeüüriliste klastrite sees. Kasutaja töökoormused saavad nõuda ressursse nvidia.com/gpu, nvidia.com/gpumem ja nvidia.com/gpucores, mis võimaldab jagada vGPU-d mitme pod'i vahel. Aktiveerimine toimub parameetri hami.enabled kaudu ja nõuab NVIDIA GPU operaatorit.
- Lisatud on ühtne seadistus publishing.proxyProtocol PROXY protokolli aktiveerimiseks hostides, kus on ingress-nginx. Selle aktiveerimisel käivitatakse automaatselt Ouroboros, mis kõrvaldab problemaatilise hairpin-NAT klastrisisestele avalikele nimedele suunamisel. Tenantide klastritele on ette nähtud täiendus addons.ouroboros.enabled.
- Cozystack-operatorisse on lisatud HelmRelease'i genereerimise seadistused: interval, retry interval, install timeout, upgrade timeout ja max history. Katsetuste strateegia on muudetud RetryOnFailure'iks ning individuaalsete rakenduste jaoks saab määrata timeout'i annotatsiooni release.cozystack.io/helm-install-timeout kaudu. See lahendab mitmeid probleeme tenantide klastrite külma käivitamise ajal.
- Tenantide Kubernetes'e töötaja sõlmede jaoks arvutatakse automaatselt kubelet'i varude reservatsioonid CPU ja mälu jaoks. Cluster-autoscaler'i annotatsioonid peegeldavad nüüd eraldatud ressursse, mitte CPU ja mälu kogumahtu.
- Platvormi põhikomponendid on uuendatud: 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. Uued paketid HAMi 2.8.1 ja Ouroboros 0.7.2 on lisatud.
- Diagnostika on paranenud: cozyreport kogub nüüd teavet Flux'i, cert-manager'i, host-keskkonna, rakenduse, rakenduse definitsiooni ja Tenant-resursside kohta, samuti koostab summary.txt lühikese kokkuvõtte olemasolevatest probleemidest. Lisatud on Grafana paneelid ja andmete kogumise reeglid GPU jälgimiseks.
- Vigadeparandused on tehtud MongoDB, Kafka, tenant Kubernetes'e alguse, etcd, Velero, Kamaji, LINSTOR, SeaweedFS, Harbor, objectstorage-controller, API ja teiste komponentide osas. API's on kõrvaldatud IDOR-ahius TenantNamespace Get'i ja Watch'i töötlejates.
Uuendamisel tuleb arvestada, et tenantide klastrite töötaja sõlmed asendatakse ühe korda järjestikku püsik PVC-diskide ülemineku tõttu. KubeVirt'i virtuaalmasinad, mis käivitatakse enne platvormi uuendamist, vajavad külma taaskäivitamist pärast üleminekut KubeVirt 1.8.2-le, kuna vana virt-launcher protsesside elav migratsioon võib ebaõnnestuda QEMU versiooni muutumise tõttu. Lisaks on PostgreSQL parameetrid nüüd tüpiseeritud ja kontrollitakse denylist'i, samas kui cert-manager 1.20 käivitab vaikimisi konteinerid UID/GID 65532.
Allikas: opennet.ru
