Den nya versionen av den öppna PaaS-plattformen Cozystack 0.33, baserad pÄ Kubernetes, Àr nu tillgÀnglig. Projektet syftar till att erbjuda en fÀrdig plattform för hostingleverantörer och en ram för att bygga privata och offentliga moln. Plattformen installeras direkt pÄ servrar och tÀcker alla aspekter av att förbereda infrastruktur för att erbjuda hanterade tjÀnster. Cozystack möjliggör körning och tillhandahÄllande av Kubernetes-kluster, databaser och virtuella maskiner. Koden för plattformen finns tillgÀnglig pÄ GitHub och distribueras under Apache-2.0-licensen.
Talos Linux och Flux CD anvÀnds som grundlÀggande teknikstack. Avbildningar med systemet, kÀrnan och nödvÀndiga moduler skapas i förvÀg och uppdateras atomÀrt, vilket gör att komponenter som dkms och paketförvaltare kan undvikas, och garanterar stabil drift. En enkel installationsmetod erbjuds i ett tomt datacenter via PXE och debian-liknande installationsprogrammet talos-bootstrap. Plattformen gör det möjligt att klicka för att distribuera Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics och andra tjÀnster.
Plattformen inkluderar en fri implementation av nÀtverksinfrastruktur (fabric) baserat pÄ Kube-OVN, och anvÀnder Cilium för att organisera tjÀnstenÀtverket, MetalLB för att annonsera tjÀnster utÄt. Lagringen implementeras via LINSTOR, dÀr ZFS föreslÄs som en grundlÀggande lager för lagring och DRBD för replikering. Det finns en förkonfigurerad övervakningsstack baserad pÄ VictoriaMetrics och Grafana. För att köra virtuella maskiner anvÀnds KubeVirt-teknologin, som gör det möjligt att köra 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 'bare metal' Kubernetes-kluster.
Under de senaste sex veckorna har projektteamet slÀppt nya versioner 0.31, 0.32 och 0.33. Bland Àndringarna i dessa versioner:
- Enhetlig hantering av tilldelning av CPU- och minnesresurser. Enhetliga konfigurationsvariabler cpu-allocation-ratio och memory-allocation-ratio har lagts till för att begrÀnsa CPU-resurser och minnesanvÀndning i virtuella maskiner som körs med KubeVirt. Variablerna tillÀmpas pÄ alla hanterade applikationer och resurskvoter för tenants. FörinstÀllningar tar ocksÄ hÀnsyn till resursallokeringsförhÄllandena och beter sig pÄ samma sÀtt som explicita resursdefinitioner. Vid uppgradering frÄn tidigare versioner av Cozystack konverteras resurskonfigurationen i hanterade applikationer automatiskt till det nya formatet.
- En backupfunktion för PVC har lagts till i tenant-baserade Kubernetes-kluster, vilket gör det möjligt för administratörer av bÄde hela plattformen och individuella tenants att skapa sÀkerhetskopior och ÄterstÀlla data frÄn körande tjÀnster i klustren. Backupen anvÀnder projektet Velero, och systemet krÀver extern S3-kompatibel lagring.
- Stöd för anvÀndning av delade NFS-lagringar har implementerats med en ny valfri systemmodul.
- Möjlighet att konfigurera tillgÀngliga CPU-socklar för virtuella maskiner via parametern resources.cpu.sockets har lagts till, vilket gör det möjligt att tilldela specifika socklar till virtuella maskiner.
- Stöd för anvÀndning av förinlÀsta golden-bilder för virtuella maskiner har lagts till, vilket pÄskyndar beredningen genom att hÀnvisa till existerande bilder istÀllet för att ladda ner via HTTP.
- En exposeMethod-alternativ för Ingress-NGINX i tenant-baserade kluster har implementerats, vilket gör det möjligt att vÀlja Proxied och LoadBalancer.
- FörbÀttrad support för Java-applikationer: "heap"-parametrar berÀknas nu baserat pÄ begÀrningar och minnesgrÀnser.
- Standardpakethanteraren har bytts ut â istĂ€llet för Helm anvĂ€nds nu det nya verktyget cozypkg (ett wrapper runt Helm och Flux för lokal utveckling).
- En synkronisator för HelmRelease har lagts till för systemkomponenter, vilket sÀkerstÀller automatisk övervakning av viktiga konfigurationsÀndringar för snabb uppdatering av systemapplikationer.
- Stöd för registry mirror har lagts till i tenant-baserade Kubernetes-kluster, vilket konfigurerar containerd för tenant-baserade kluster.
- En enhetlig mÀrkning av applikationens underobjekt för övervakning via WorkloadMonitors har implementerats.
- En cluster-domain-alternativ för att ÄsidosÀtta domÀnen cozy.local har lagts till.
- RBAC-regler har lagts till för portgenomgÄng i KubeVirt (SSH via virtctl).
- Insamling av hÀndelser och revisionsloggar har aktiverats.
- Backup/ÄterstÀllning av PostgreSQL har implementerats.
- Ett nytt verktyg, cozyreport, har lagts till och samlar rapporter i CI. Nu sparas all diagnostisk information som byggartefakter.
- Komponenterna har uppdaterats: 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.
- Möjlighet att installera Talos i Air Gap-miljöer har tillhandahÄllits.
- GPU-stöd har lagts till för bonde-Kubernetes-kluster. Plattformens anvÀndare kan köra GPU-arbetslaster bÄde i virtuella maskiner och i Kubernetes-kluster.
- Beta-stöd för ARM-arkitektur har sÀkerstÀllts (kors-arkitekturell byggnation). Byggsystemet har omarbetats för att stödja multiarkitekturbinary-filer och containerbilder.
- VerticalPodAutoscaler (VPA) har utvidgats, vilket aktiveras för fler komponenter i Cozystack och möjliggör automatisk resursanpassning. SÀrskilt har VPA lagts till för control plane bondekluster. administrationspanelen Cozystack och etcd-operator. Alla Cozystack-komponenter med aktiverad VPA kan automatiskt korrigera sina CPU- och minnesbegÀrningar baserat pÄ deras anvÀndning, vilket ökar stabiliteten.
- Stöd för Gateway API har lagts till i Cilium, vilket möjliggör avancerade L4/L7-routningsfunktioner via Kubernetes Gateway API.
- Möjlighet att lÀgga till egna parametrar i Cilium-konfigurationer för bondekluster har tillhandahÄllits.
- I Tenant HelmRelease Reconcile-kontrollern har distributionen av konfigurationsÀndringar till bondearbetsbelastningar sÀkerstÀllts (garanterar att alla HelmRelease som definieras i bonde Àr synkroniserade med plattformsuppdateringar).
- Möjlighet att konfigurera CPU-allokeringsförhÄllandet i KubeVirt (hur virtuella CPU:er relaterar till fysiska) har lagts till via vÀrdet cpu-allocation-ratio i configmap. Administratörer kan konfigurera överbelastning av CPU för virtuella maskiner, vilket upprÀtthÄller nödvÀndig balans mellan prestanda och densitet.
- Export av virtuella maskiner KubeVirt har implementerats. Funktionen fungerar via VirtualMachineExport i KubeVirt och tillÄter anvÀndare att skapa snapshots eller sÀkerhetskopior av virtuella maskinbilder.
- Stöd för olika lagringsklasser (storage classes) för virtuella maskiner Àr sÀkerstÀllt. Applikationen virtual-machine gör det möjligt att vÀlja vilken StorageClass som helst för systemdisken pÄ den virtuella maskinen istÀllet för att anvÀnda en faststÀlld PVC (se vÀrdena systemDisk.storage och systemDisk.storageClass i applikationens konfiguration).
KĂ€lla: opennet.ru
