Open-source PaaS platforma Cozystack 1.4, postavená na Kubernetes, je nyní k dispozici. Cílem projektu je poskytnout poskytovatelům hostingu připravenou platformu a framework pro budování privátních i veřejných cloudů. Platforma se instaluje přímo na servery a pokrývá všechny aspekty přípravy infrastruktury pro poskytování spravovaných služeb. Cozystack umožňuje spouštět a zřizovat clustery, databáze a další služby Kubernetes. virtuální strojeKód platformy je k dispozici na GitHubu a je distribuován pod licencí Apache-2.0.
Platforma zahrnuje implementaci síťové infrastruktury (fabric) s otevřeným zdrojovým kódem založenou na Kube-OVN a využívá Cilium pro organizaci sítě služeb a MetalLB pro oznámení služeb. Úložiště je implementováno na platformě LINSTOR, která nabízí ZFS jako podkladovou úložnou vrstvu a DRBD pro replikaci. Součástí je předkonfigurovaný monitorovací stack založený na VictoriaMetrics a Grafana. Spuštění virtuální stroje Platforma využívá technologii KubeVirt, která umožňuje spouštět klasické virtuální stroje přímo v kontejnerech Kubernetes a má již všechny potřebné integrace s Cluster API pro spouštění spravovaných clusterů Kubernetes v rámci holého clusteru Kubernetes. V rámci platformy můžete jediným kliknutím nasadit služby Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics a další.
Klíčové vlastnosti Cozystacku 1.4.0:
- Bylo představeno nové rozhraní pro správu založené na projektu cozystack-ui. Starý stack openapi-ui a BFF byl nahrazen frontendem postaveným na Reactu 19 a TypeScriptu, který pracuje přímo s Kubernetes API. Rozhraní nyní navíc podporuje dynamické URL VNC WebSocket pro virtuální stroje, branding za běhu pomocí ConfigMapu, čtení ApplicationDefinition pro katalog aplikací a přesměrování starších URL /openapi-ui/*.
- Pro pracovní uzly v klastrech tenantů bylo implementováno trvalé úložiště. Virtuální počítače pracovních uzlů nyní používají PVC disky prostřednictvím KubeVirt dataVolumeTemplates namísto emptyDisk. To zajišťuje, že certifikáty kubelet, kubeconfig a stav containerd zůstanou zachovány i po restartu virtuálního počítače. Pole ephemeralStorage bylo přejmenováno na diskSize a na úrovni NodeGroup bylo přidáno nastavení storageClass. Staré hodnoty se během migrace automaticky převedou.
- Bylo přidáno nové schéma předvoleb zdrojů, podobné typům virtuálních počítačů používaným poskytovateli cloudových služeb. Předvolby jsou popsány v následujícím formátu: . , kde řady t1, c1, s1, u1 a m1 definují různé poměry CPU a paměti a velikosti se pohybují od nano do 4xlarge. Celkem je k dispozici 40 variant. Staré názvy předvoleb jsou uloženy jako aliasy a jsou automaticky migrovány beze změny skutečných limitů CPU a paměti.
- Deklarativní systém zálohování pro spravované aplikace byl rozšířen. Kontroler backupstrategy nyní podporuje strategie pro PostgreSQL, MariaDB, ClickHouse a FoundationDB. Nyní je k dispozici podpora pro BackupClass, Plan, BackupJob a RestoreJob, spolu s plánovanými a ad-hoc zálohami, obnovou na místě a obnovou z jednoho data do druhého. Data se nahrávají do objektového úložiště kompatibilního s S3 a přihlašovací údaje se přenášejí prostřednictvím Kubernetes Secret.
- Volitelný systémový balíček hami byl přidán s HAMi 2.8.1 pro sdílený přístup k grafickým procesorům NVIDIA v klastrech klientů. Uživatelské úlohy mohou vyžadovat zdroje z nvidia.com/gpu, nvidia.com/gpumem a nvidia.com/gpucores, což umožňuje sdílení vGPU mezi více pody. Toto se provádí pomocí parametru hami.enabled a vyžaduje operátor NVIDIA GPU.
- Bylo přidáno sjednocené nastavení publishing.proxyProtocol, které povoluje proxy protokol na hostitelích s ingress-nginx. Po povolení se Ouroboros automaticky nasadí, čímž se eliminuje problém s vlásenkovým NATem pro požadavky clusteru na jeho veřejné názvy. Pro clustery tenantů je k dispozici doplněk addons.ouroboros.enabled.
- Do cozystack-operator byla přidána nastavení generování HelmRelease: interval, interval opakování, časový limit instalace, časový limit upgradu a maximální historie. Strategie opakování byla přepnuta na RetryOnFailure a časový limit lze pro jednotlivé aplikace zadat pomocí anotace release.cozystack.io/helm-install-timeout. Tím se eliminuje řada problémů se studeným spouštěním clusterů tenantů.
- Pro pracovní uzly Kubernetes klienta se rezervace zdrojů Kubelet pro CPU a paměť počítají automaticky. Anotace automatického škálování clusteru nyní odrážejí alokované zdroje, nikoli celkový počet CPU a paměti.
- Následující základní komponenty platformy byly aktualizovány: 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 a linstor-csi 1.10.6. Byly přidány nové balíčky: HAMi 2.8.1 a Ouroboros 0.7.2.
- Vylepšená diagnostika: cozyreport nyní shromažďuje informace o zdrojích Flux, cert-manager, hostitelském prostředí, aplikaci, definice aplikace a tenanta a generuje soubor summary.txt se stručným shrnutím aktuálních problémů. Byly přidány dashboardy Grafana a pravidla sběru dat pro monitorování GPU.
- Opravy chyb byly implementovány v komponentách MongoDB, Kafka, tenant Kubernetes bootstrap, etcd, Velero, Kamaji, LINSTOR, SeaweedFS, Harbor, objectstorage-controller, API a dalších. V API byla opravena zranitelnost IDOR v obslužných rutinách Get a Watch v TenantNamespace.
Při upgradu mějte prosím na paměti, že uzly worker clusteru tenantů budou postupně jednou nahrazeny z důvodu přechodu na perzistentní PVC disky. Virtuální počítače KubeVirt spuštěné před upgradem platformy budou po upgradu na KubeVirt 1.8.2 vyžadovat studený restart, protože živá migrace starších procesů virt-launcher může selhat kvůli změně verze QEMU. Parametry PostgreSQL jsou nyní navíc zadávány a kontrolovány proti seznamu zakázaných adres a cert-manager 1.20 ve výchozím nastavení spouští kontejnery s UID/GID 65532.
Zdroj: opennet.ru
