È disponibile il rilascio della piattaforma PaaS open source Cozystack 0.33, costruita su Kubernetes. Il progetto è mirato a fornire una piattaforma pronta per i fornitori di hosting e un framework per la creazione di cloud privati e pubblici. La piattaforma viene installata direttamente sui server e copre tutti gli aspetti della preparazione dell'infrastruttura per fornire servizi gestiti. Cozystack consente di eseguire e fornire cluster Kubernetes, database e macchine virtuali. Il codice della piattaforma è disponibile su GitHub ed è distribuito con licenza Apache-2.0.
Il stack tecnologico di base utilizza Talos Linux e Flux CD. Le immagini con il sistema, il kernel e i moduli necessari vengono generate in anticipo e aggiornate in modo atomico, permettendo di evitare componenti come dkms e il gestore di pacchetti, e garantendo un funzionamento stabile. Viene fornito un metodo semplice per l'installazione in un data center vuoto tramite PXE e l'installatore basato su Debian talos-bootstrap. All'interno della piattaforma è possibile lanciare con un clic Kafka, FerretDB, PostgreSQL, Cilium, Grafana, Victoria Metrics e altri servizi.
La piattaforma include un'implementazione open source dell'infrastruttura di rete (fabric) basato su Kube-OVN, e utilizza Cilium per organizzare la rete dei servizi, MetalLB per annunciare i servizi all'esterno. Lo storage è implementato su LINSTOR, dove viene offerto l'utilizzo di ZFS come strato di base per lo storage e DRBD per la replicazione. È presente un stack di monitoraggio preconfigurato basato su VictoriaMetrics e Grafana. Per l'esecuzione delle macchine virtuali viene utilizzata la tecnologia KubeVirt, che consente di eseguire macchine virtuali classiche direttamente nei contenitori Kubernetes e ha già tutte le integrazioni necessarie con Cluster API per eseguire cluster Kubernetes gestiti all'interno di un cluster Kubernetes 'bare metal'.
Negli ultimi due mesi, il team del progetto ha rilasciato nuove versioni 0.31, 0.32 e 0.33. Tra le modifiche apportate in questi rilasci ci sono:
- Unificata la gestione dell'allocazione delle risorse CPU e memoria. Sono state aggiunte le variabili di configurazione unificate cpu-allocation-ratio e memory-allocation-ratio per limitare le risorse CPU e il consumo di memoria nelle macchine virtuali gestite da KubeVirt. Le variabili si applicano a tutte le applicazioni gestite e alle quote di risorse dei tenant. Le preimpostazioni tengono anche conto dei coefficienti di allocazione delle risorse e si comportano come le definizioni esplicite delle risorse. Durante l'aggiornamento da versioni precedenti di Cozystack, la configurazione delle risorse nelle applicazioni gestite viene automaticamente convertita nel nuovo formato.
- È stata aggiunta la funzione di backup dei PVC nei cluster Kubernetes dei tenant, che consente agli amministratori sia della piattaforma che dei singoli tenant di creare backup e ripristinare i dati dei servizi in esecuzione nei cluster. Per il backup viene utilizzato il progetto Velero, e il sistema richiede uno storage esterno compatibile con S3.
- Implementato il supporto per l'uso di storage NFS condivisi con un nuovo modulo di sistema opzionale.
- Aggiunta la possibilità di configurare i socket CPU disponibili per le macchine virtuali attraverso il parametro resources.cpu.sockets, che consente di assegnare a macchine virtuali specifici socket.
- Aggiunto il supporto per l'uso di immagini golden pre-caricate per le macchine virtuali, accelerando la preparazione grazie a riferimenti a immagini esistenti anziché al download via HTTP.
- Implementata l'opzione exposeMethod per Ingress-NGINX nei cluster dei tenant, che consente di scegliere Proxied e LoadBalancer.
- Migliorato il supporto per le applicazioni Java: i parametri 'heap' vengono ora calcolati in base alle richieste e ai limiti di memoria.
- Sostituito il gestore di pacchetti standard: invece di Helm, ora viene utilizzata la nuova utility cozypkg (una wrapper attorno a Helm e Flux per lo sviluppo locale).
- Aggiunto un sincronizzatore HelmRelease per i componenti di sistema, che fornisce un controllo automatico dei cambiamenti chiave nella configurazione per un aggiornamento tempestivo delle applicazioni di sistema.
- Aggiunto il supporto per registry mirror nei cluster Kubernetes dei tenant, configurando containerd per i cluster dei tenant.
- Implementata una marcatura uniforme degli oggetti secondari delle applicazioni per il monitoraggio tramite WorkloadMonitors.
- Aggiunta l'opzione cluster-domain per sovrascrivere il dominio cozy.local.
- Aggiunte regole RBAC per il port forwarding in KubeVirt (SSH tramite virtctl).
- Inclusa la raccolta di eventi e log di audit.
- Realizzato il backup/ripristino di PostgreSQL.
- Aggiunto un nuovo strumento cozyreport e garantita la raccolta di report in CI. Ora tutte le informazioni diagnostiche vengono salvate come artefatti di costruzione.
- Aggiornati i componenti: 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.
- Offerta la possibilità di installare Talos in ambienti Air Gap.
- Aggiunto il supporto GPU per i cluster Kubernetes dei tenant. Gli utenti della piattaforma possono eseguire carichi di lavoro GPU sia in macchine virtuali che in cluster Kubernetes.
- Garantito il supporto beta per l'architettura ARM (build cross-architettura). Il sistema di build è stato riprogettato per supportare file binari e immagini container multiarchitetturali.
- Espanso VerticalPodAutoscaler (VPA), che è stato attivato per un maggior numero di componenti Cozystack, consentendo il tuning automatico delle risorse. In particolare, il VPA è stato aggiunto per i cluster tenant del control plane. pannello di controllo Cozystack e etcd-operator. Tutti i componenti di Cozystack con VPA attivato possono automaticamente correggere le proprie richieste di CPU e memoria in base al loro utilizzo, aumentando la stabilità.
- Aggiunto il supporto per Gateway API in Cilium, consentendo l'uso di funzionalità avanzate di routing L4/L7 tramite Kubernetes Gateway API.
- Offerta la possibilità di aggiungere parametri personalizzati nelle configurazioni di Cilium per i cluster dei tenant.
- Nel controller Tenant HelmRelease Reconcile è garantita la diffusione delle modifiche di configurazione ai carichi di lavoro dei tenant (garantisce che ogni HelmRelease definito in un tenant sia sincronizzato con gli aggiornamenti della piattaforma).
- È stata aggiunta la possibilità di configurare il rapporto di allocazione della CPU in KubeVirt (cioè come le CPU virtuali si relazionano con quelle fisiche) tramite il valore cpu-allocation-ratio in configmap. Gli amministratori possono configurare l'overcommit CPU per le macchine virtuali, mantenendo un equilibrio necessario tra prestazioni e densità.
- È stata implementata l'esportazione delle macchine virtuali in KubeVirt. Questa funzione funziona tramite VirtualMachineExport in KubeVirt e consente agli utenti di creare snapshot o backup delle immagini delle macchine virtuali.
- È stata fornita supporto per diverse classi di archiviazione (storage classes) per le macchine virtuali. L'applicazione virtual-machine consente di scegliere qualsiasi StorageClass per il disco di sistema della macchina virtuale, invece di utilizzare un PVC definito rigidamente (vedi i valori systemDisk.storage e systemDisk.storageClass nella configurazione dell'applicazione).
Fonte: opennet.ru
