Elérhető a Cozystack 0.33 szabad PaaS-platforma kiadása, amely Kubernetesre épül. A projekt célja, hogy készen álló platformot biztosítson a hoszting szolgáltatók számára, és keretrendszert a magán- és nyilvános felhők felépítéséhez. A platform közvetlenül a szerverekre telepíthető, és átfogja az infrastruktúra előkészítésének minden aspektusát a kezelhető szolgáltatások nyújtásához. A Cozystack lehetővé teszi Kubernetes klaszterek, adatbázisok és virtuális gépek indítását és biztosítását. A platform kódja elérhető a GitHubon, és az Apache-2.0 licenc alatt terjed.
A technológiai alapként Talos Linux és Flux CD használatos. A rendszer, kernel és szükséges modulok képei előre létrehozottak, és atomikusan frissülnek, lehetővé téve a dkms és csomagkezelők elkerülését, garantálva a stabil működést. Egyszerű telepítési módszert kínál üres adatközpontokban PXE és a talos-bootstrap Debian-szerű telepítő segítségével. A platform keretein belül egy kattintással telepíthetők a Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics és más szolgáltatások.
A platform tartalmaz egy ingyenes megvalósítást hálózati infrastruktúrából (fabric) a Kube-OVN alapjain, és a Cilium-t használja a szolgáltatási hálózat megszervezésére, a MetalLB-t a szolgáltatások külső bejelentésére. A tárolás a LINSTOR-on valósul meg, ahol a ZFS mint alapréteg a tároláshoz, és a DRBD a replikációhoz ajánlott. Előre beállított megfigyelési verem áll rendelkezésre VictoriaMetrics és Grafana alapjain. Virtuális gépek futtatásához a KubeVirt technológia használatos, amely lehetővé teszi a klasszikus virtuális gépek futtatását közvetlenül a Kubernetes konténerekben, és már rendelkezik az összes szükséges integrációval a Cluster API-hoz a kezelhető Kubernetes klaszterek indításához „vas” Kubernetes klasztereken belül.
Az utolsó másfél hónapban a projekt csapata új 0.31, 0.32 és 0.33 verziókat adott ki. A kiadásokban történt változások közül:
- Egységesített CPU és memória erőforrás-kezelés. Bevezetésre kerültek az egységes konfigurációs változók: cpu-allocation-ratio és memory-allocation-ratio, amelyek korlátozzák a CPU erőforrásokat és a memóriafogyasztást a KubeVirt által kezelt virtuális gépeken. A változók minden kezelt alkalmazásra és a tenant-erőforrás kvótákra vonatkoznak. A beállítások figyelembe veszik az erőforrás-kiosztási arányokat, és úgy működnek, mint a kifejezett erőforrásmeghatározások. Korábbi Cozystack verziókról való frissítésekor a kezel alkalmazások erőforrás-konfigurációja automatikusan új formátumba konvertálódik.
- Bevezetésre került a PVC biztonsági mentési funkció a tenant Kubernetes klaszterekben, amely lehetővé teszi a platform összes és egyes tenant adminisztrátorai számára, hogy biztonsági másolatokat készítsenek és helyreállítsák a klaszterekben futó szolgáltatások adatait. A biztonsági mentéshez a Velero projektet használják, a rendszernek pedig külső S3-kompatibilis tárolóra van szüksége.
- Megvalósították a megosztott NFS tárolók használatának támogatását egy új opcionális rendszermodullal.
- Lehetővé vált a virtuális gépek számára elérhető CPU-szálak beállítása a resources.cpu.sockets paraméter segítségével, amely lehetővé teszi a virtuális gépek konkrét szálakhoz rendelését.
- Támogatás került bevezetésre előre betöltött golden képek használatához virtuális gépekhez, amely felgyorsítja az előkészítést azáltal, hogy meglévő képekre hivatkozik a HTTP-n történő letöltés helyett.
- Megvalósítva az exposeMethod opció az Ingress-NGINX számára a tenant klaszterekben, amely lehetővé teszi a Proxied és LoadBalancer kiválasztását.
- Javított Java alkalmazás támogatás: a „heap” paraméterek most már a memóriaigények és korlátok alapján számítódnak.
- Kicserélték a szokásos csomagkezelőt — a Helm helyett most egy új eszköz, a cozypkg (a Helm és Flux köré épített helyi fejlesztésre) kerül használatra.
- Bevezetésre került a HelmRelease szinkronizáló a rendszer komponenseihez, amely automatikus ellenőrzést biztosít a konfiguráció kulcsfontosságú változásai felett a rendszerszolgáltatások időben történő frissítése érdekében.
- Bevezetésre került a registry mirror támogatás a tenant Kubernetes klaszterekben, amely a containerd beállítását végzi a tenant klaszterek számára.
- Kialakításra került az alkalmazások alárendelt objektumainak egységes jelölése a WorkloadMonitors projekt keretein belül történő megfigyeléshez.
- Bevezetésre került a cluster-domain opció a cozy.local domain felülírására.
- RBAC szabályok kerültek hozzáadásra a portok továbbításához a KubeVirt-ben (SSH a virtctl-en keresztül).
- Az események és audit naplók gyűjtése engedélyezve van.
- PostgreSQL biztonsági mentés / visszaállítás megvalósítva.
- Új eszköz, a cozyreport hozzáadva, és a jelentések összegyűjtése CI-ben biztosítva. Most az összes diagnosztikai információ építési artefaktumok formájában kerül tárolásra.
- Kibővített komponensek: 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.
- Lehetőség biztosítva a Talos telepítésére Air Gap környezetekben.
- GPU támogatás került hozzáadásra a tenant típusú Kubernetes klaszterekhez. A platform felhasználói GPU munkafolyamatokat indíthatnak virtuális gépekben és Kubernetes klaszterekben.
- Béta támogatás biztosítva az ARM architektúrához (környezetközi build). A build rendszer átdolgozva a több architektúrájú bináris fájlok és konténerképek támogatására.
- Bővítették a VerticalPodAutoscaler-t (VPA), amelyet több Cozystack komponens számára aktiváltak, és lehetővé teszi az erőforrások automatikus beállítását. Különösen a VPA-t a tenant típusú klaszterek vezérlő síkjára adták hozzá. irányítópulthoz Cozystack és etcd-operator. Minden Cozystack komponens aktivált VPA-val automatikusan módosíthatja a CPU és memória kéréseiket a felhasználásuk alapján, ami növeli a stabilitást.
- Gateway API támogatás került hozzáadásra a Cilium-ban, lehetővé téve a kibővített L4/L7 útválasztási funkciók használatát a Kubernetes Gateway API-n keresztül.
- Lehetőség biztosítva saját paraméterek hozzáadására a Cilium konfigurációkhoz tenant típusú klaszterek esetén.
- A Tenant HelmRelease Reconcile vezérlő biztosítja a konfigurációs változások elosztását a tenantok munkaterhelései között (garantálva, hogy bármilyen tenant-ban definiált HelmRelease szinkronizálva legyen a platform frissítéseivel).
- Lehetőség biztosítva a CPU allokációs arány beállítására KubeVirt-ben (hogyan aránylik a virtuális CPU a fizikaihoz) a cpu-allocation-ratio értéket a configmap-ban állítva. Az adminisztrátorok a virtuális gépekhez kapcsolódó CPU overcommit hozzárendelést szabályozhatnak, figyelembe véve a teljesítmény és a sűrűség közötti szükséges egyensúlyt.
- KubeVirt virtuális gépek exportálása megvalósítva. A funkció a VirtualMachineExport-on keresztül működik a KubeVirt-ben, és lehetővé teszi a felhasználók számára a virtuális gépek képeinek pillanatfelvételeinek vagy biztonsági mentéseinek létrehozását.
- Támogatott a különböző tárolási osztályok (storage classes) használata virtuális gépek esetén. A virtual-machine alkalmazás lehetővé teszi, hogy bármilyen StorageClass-t válasszunk a virtuális gép rendszerlemeze számára, a rögzített PVC használata helyett (lásd systemDisk.storage és systemDisk.storageClass értékei az alkalmazás konfigurációjában).
Forrás: opennet.ru
