Dostupná byla svobodná PaaS platforma Cozystack 0.33, postavená na základě Kubernetes. Projekt je zaměřen na poskytování hotové platformy pro hostingové poskytovatele a rámce pro vytvoření privátních a veřejných cloudů. Platforma se instaluje přímo na servery a pokrývá všechny aspekty přípravy infrastruktury pro poskytování řízených služeb. Cozystack umožňuje spouštět a poskytovat clustery Kubernetes, databáze a virtuální stroje. Kód platformy je dostupný na GitHubu a je šířen pod licencí Apache-2.0.
Jako základní technologický stack se používá Talos Linux a Flux CD. Obrazy se systémem, jádrem a potřebnými moduly jsou předem vytvořeny a aktualizovány atomicky, což umožňuje obejít se bez komponent jako dkms a balíkového manažera a zaručuje stabilní provoz. Je poskytována jednoduchá metoda instalace v prázdném datacentru pomocí PXE a debian-podobného instalátoru talos-bootstrap. V rámci platformy lze jednoduše nasazovat Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics a další služby.
Platforma zahrnuje svobodnou implementaci síťové infrastruktury (fabric) založený na Kube-OVN a používá Cilium pro organizaci servisní sítě, MetalLB pro oznamování služeb ven. Úložiště je implementováno na LINSTOR, kde je nabízeno použití ZFS jako základní vrstvy pro úložiště a DRBD pro replikaci. Je zde přednastavený monitoring stack založený na VictoriaMetrics a Grafana. Pro spuštění virtuálních strojů se používá technologie KubeVirt, která umožňuje spouštět klasické virtuální stroje přímo v kontejnerech Kubernetes a již má všechny potřebné integrace s Cluster API pro spuštění spravovaných Kubernetes clusterů uvnitř
V uplynulých dvou a půl měsících tým projektu vydal nové verze 0.31, 0.32 a 0.33. Mezi změnami v těchto vydáních:
- Bylo sjednoceno řízení přidělování zdrojů CPU a paměti. Byly přidány jednotné konfigurační proměnné cpu-allocation-ratio a memory-allocation-ratio pro omezení zdrojů CPU a spotřeby paměti ve virtuálních strojích spravovaných KubeVirt. Proměnné se aplikují na všechny spravované aplikace a kvóty zdrojů tenantů. Předvolby také zohledňují koeficienty přidělování zdrojů a chovají se stejně jako explicitně definované zdroje. Při aktualizaci z dřívějších verzí Cozystack se konfigurace zdrojů ve spravovaných aplikacích automaticky převádí do nového formátu.
- Byla přidána funkce zálohování PVC v tenantových Kubernetes clusterech, která umožňuje správcům jak celé platformy, tak jednotlivých tenantů, vytvářet zálohy a obnovovat data spuštěných v clusterech služeb. Pro zálohování byl využit projekt Velero a samotný systém vyžaduje externí úložiště kompatibilní se S3.
- Byla implementována podpora používání sdílených NFS úložišť s novým volitelným systémovým modulem.
- Byla přidána možnost nastavení dostupných CPU socketů pro virtuální stroje prostřednictvím parametru resources.cpu.sockets, což umožňuje přiřazení konkrétních socketů virtuálním strojům.
- Byla přidána podpora používání přednačítaných golden obrazů pro virtuální stroje, která urychluje přípravu díky odkazům na existující obrazy místo stahování přes HTTP.
- Byla implementována možnost exposeMethod pro Ingress-NGINX v tenantových clusterech, která umožňuje vybrat Proxied a LoadBalancer.
- Vylepšená podpora Java aplikací: parametry „heap“ jsou nyní vypočítávány na základě požadavků a limitů paměti.
- Standardní správce balíčků byl nahrazen — místo Helmu se nyní používá nová utilita cozypkg (obal kolem Helmu a Flux pro místní vývoj).
- Byl přidán synchronizátor HelmRelease pro systémové komponenty, který zajišťuje automatickou kontrolu klíčových změn konfigurace pro včasné aktualizace systémových aplikací.
- Byla přidána podpora registry mirror v tenantních Kubernetes clusterech, která konfiguruje containerd pro tenantní clustry.
- Bylo implementováno jednotné označení podřízených objektů aplikací pro monitorování přes WorkloadMonitors.
- Byla přidána možnost cluster-domain pro přepsání domény cozy.local.
- Byla přidána pravidla RBAC pro předávání portů v KubeVirt (SSH přes virtctl).
- Byl zahrnut sběr událostí a auditních logů.
- Bylo realizováno zálohování/obnovení PostgreSQL.
- Byl přidán nový nástroj cozyreport a zajištěn sběr zpráv v CI. Nyní se všechny diagnostické informace ukládají jako artefakty sestavení.
- Byly aktualizovány komponenty: 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.
- Byla poskytnuta možnost instalace Talos v Air Gap prostředích.
- Byla přidána podpora GPU pro tenantní Kubernetes clustry. Uživatelé platformy mohou spouštět GPU workloady jak ve virtuálních strojích, tak v Kubernetes clustrech.
- Byla zajištěna beta podpora architektury ARM (křížově-architektonická sestavení). Systém sestavení byl přepracován pro podporu multiarchitektonických binárních souborů a kontejnerových obrazů.
- Byl rozšířen VerticalPodAutoscaler (VPA), který je aktivován pro více komponent Cozystack a umožňuje automatické nastavení zdrojů. VPA byl konkrétně přidán pro control plane tenantní clustry. administrativním panelu. Cozystack a etcd-operator. Všechny komponenty Cozystack s aktivním VPA mohou automaticky upravovat své požadavky na CPU a paměť na základě jejich využití, což zvyšuje stabilitu.
- Byla přidána podpora Gateway API v Cilium, což umožňuje využívat rozšířené funkce směrování L4/L7 prostřednictvím Kubernetes Gateway API.
- Byla poskytnuta možnost přidání vlastních parametrů do konfigurací Cilium pro tenantní clustry.
- V kontroleru Tenant HelmRelease Reconcile je zajištěno šíření změn konfigurace na pracovní zátěže tenantů (zaručuje, že jakýkoli HelmRelease definovaný v tenantovi je synchronizován s aktualizacemi platformy).
- Byla přidána možnost nastavení koeficientu alokace CPU v KubeVirt (jak se virtuální CPU vztahují k fyzickým) přes hodnotu cpu-allocation-ratio v configmap. Administrátoři mohou nastavovat overcommit CPU pro virtuální stroje, přičemž dodržují nutnou rovnováhu mezi výkonem a hustotou.
- Byl implementován export virtuálních strojů KubeVirt. Funkce funguje prostřednictvím VirtualMachineExport v KubeVirt a umožňuje uživatelům vytvářet snímky nebo zálohy obrazů virtuálních strojů.
- Byla zajištěna podpora různých tříd úložišť (storage classes) pro virtuální stroje. Aplikace virtual-machine umožňuje vybírat libovolný StorageClass pro systémový disk virtuálního stroje namísto používání pevně daného PVC (viz hodnoty systemDisk.storage a systemDisk.storageClass v konfiguraci aplikace).
Zdroj: opennet.ru
