Den nya versionen av PaaS-plattformen Cozystack 1.4, byggd pÄ Kubernetes, Àr nu tillgÀnglig. Projektet syftar till att erbjuda en fÀrdig plattform för hostingleverantörer och ett ramverk för att bygga privata och offentliga moln. Plattformen installeras direkt pÄ servrar och tÀcker alla aspekter av infrastrukturber preparering för att tillhandahÄlla hanterade tjÀnster. Cozystack möjliggör driftsÀttning och tillhandahÄllande av Kubernetes-kluster, databaser och virtuella maskiner. Plattformens kod Àr tillgÀnglig pÄ GitHub och distribueras under Apache-2.0-licensen.
Plattformen inkluderar en öppen implementation av nÀtverksinfrastrukturen (fabric) baserad pÄ Kube-OVN och anvÀnder Cilium för att organisera tjÀnstenÀtverk, MetalLB för annonsering av tjÀnster utÄt. Lagring implementeras med LINSTOR, som erbjuder anvÀndning av ZFS som baslager för lagring och DRBD för replikering. En förkonfigurerad övervakningsstack baserad pÄ VictoriaMetrics och Grafana finns tillgÀnglig. För att starta virtuella maskiner anvÀnds KubeVirt-teknologin, som möjliggör körning av klassiska virtuella maskiner direkt i Kubernetes-containrar och redan har alla nödvÀndiga integrationer med Cluster API för att köra hanterade Kubernetes-kluster inom en «fysisk» Kubernetes-kluster. Inom plattformen kan man med ett klick distribuera Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics och andra tjÀnster.
De viktigaste nyheterna i Cozystack 1.4.0:
- Ett nytt administrationsgrÀnssnitt baserat pÄ projektet cozystack-ui har presenterats. Den gamla stacken openapi-ui och BFF har ersatts av front-end pÄ React 19 och TypeScript, som arbetar direkt med Kubernetes API. Dessutom har grÀnssnittet nu stöd för dynamiska VNC WebSocket-URL:er för virtuella maskiner, runtime-branding via ConfigMap, lÀsning av ApplicationDefinition för applikationskatalogen och omdirigering av gamla adresser /openapi-ui/*.
- För worker-noder i tenantkluster implementerades permanent lagring. Virtuella maskiner för worker-noder anvÀnder nu PVC-diskar via KubeVirt dataVolumeTemplates istÀllet för emptyDisk. Detta sÀkerstÀller att kubelet-certifikat, kubeconfig och containerd-status sparas efter omstart av den virtuella maskinen. FÀltet ephemeralStorage har döpts om till diskSize, och en instÀllning för storageClass har lagts till pÄ nivÄ av NodeGroup. Under migreringen omvandlas gamla vÀrden automatiskt.
- En ny resurspreset-schema har lagts till i likhet med typer av virtuella maskiner hos molnleverantörer. Presets beskrivs i formatet ., dÀr serierna t1, c1, s1, u1 och m1 anger olika förhÄllanden mellan CPU och minne, medan storlekarna varierar frÄn nano till 4xlarge. Totalt finns 40 alternativ. Gamla preset-namn har sparats som deprecierade alias och migreras automatiskt utan att de faktiska CPU- och minnesgrÀnserna Àndras.
- Systemet för deklarativ backup av hanterade applikationer har utvidgats. BackupStrategy-kontrollern har fÄtt strategier för PostgreSQL, MariaDB, ClickHouse och FoundationDB. BackupClass, Plan, BackupJob och RestoreJob stöds, med schemalagda och engÄngsbackuper, ÄterstÀllning pÄ plats och ÄterstÀllning till en kopia. Data exporteras till S3-kompatibel objektlagring, och autentiseringsuppgifter överförs via Kubernetes Secret.
- Ett valfritt systempaket hami har lagts till med HAMi 2.8.1 för gemensam Ätkomst till NVIDIA GPU i tenantkluster. AnvÀndarens arbetsbelastningar kan begÀra resurser frÄn nvidia.com/gpu, nvidia.com/gpumem och nvidia.com/gpucores, vilket möjliggör fördelning av vGPU mellan flera poddar. Aktivering sker via parametern hami.enabled och krÀver NVIDIA GPU Operator.
- Det finns en enhetlig instÀllning publishing.proxyProtocol för att aktivera PROXY-protokollet pÄ vÀrdar med ingress-nginx. NÀr denna aktiveras deployas automatiskt Ouroboros, vilket löser problemet med hairpin-NAT för anrop frÄn klustret till dess offentliga namn. För tenantkluster finns ett tillÀgg addons.ouroboros.enabled.
- I cozystack-operator har instÀllningar för generering av HelmRelease lagts till: interval, retry interval, install timeout, upgrade timeout och max history. à terföringsstrategin har Àndrats till RetryOnFailure, och för specifika applikationer kan timeout anges via annoteringen release.cozystack.io/helm-install-timeout. Detta löser flera problem vid kallstart av tenantkluster.
- För worker-noder i tenant Kubernetes berÀknas resursreservationsbehovet för kubelet automatiskt för CPU och minne. Annoteringarna cluster-autoscaler Äterspeglar nu tilldelade resurser snarare Àn den totala mÀngden CPU och minne.
- De grundlÀggande plattformsdelarna har uppdaterats: 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. Nya paket HAMi 2.8.1 och Ouroboros 0.7.2 har lagts till.
- Diagnostiken har förbÀttrats: cozyreport samlar nu in information om Flux, cert-manager, vÀrdmiljö, Application, ApplicationDefinition och Tenant-resurser, samt genererar summary.txt med en kort sammanfattning av aktuella problem. Grafana-instrumentpaneler och datainsamlingsregler för övervakning av GPU har lagts till.
- Fel har rÀttats i MongoDB, Kafka, tenant Kubernetes bootstrap, etcd, Velero, Kamaji, LINSTOR, SeaweedFS, Harbor, objectstorage-controller, API och andra komponenter. I API har en IDOR-sÄrbarhet ÄtgÀrdats i hanterarna TenantNamespace Get och Watch.
Vid uppgradering bör man tÀnka pÄ att worker-noder i tenantkluster kommer att bytas ut successivt pÄ en gÄng pÄ grund av övergÄngen till permanenta PVC-diskar. KubeVirt virtuella maskiner som kördes före plattformsuppgraderingen kommer att krÀva kall omstart efter övergÄngen till KubeVirt 1.8.2, eftersom levande migrering av gamla virt-launcher-processer kan misslyckas pÄ grund av versionsÀndring av QEMU. Dessutom Àr PostgreSQL-parametrar nu typade och kontrolleras mot en denylist, och cert-manager 1.20 körs som standard med containrar som har UID/GID 65532.
KĂ€lla: opennet.ru
