È disponibile il rilascio della piattaforma PaaS open-source Cozystack 0.33, costruita su Kubernetes. Il progetto mira 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 la fornitura di servizi gestiti. Cozystack consente di eseguire e fornire cluster Kubernetes, database e macchine virtuali. Il codice della piattaforma è disponibile su GitHub e distribuito sotto la licenza Apache-2.0.
Viene utilizzato Talos Linux e Flux CD come stack tecnologico di base. Le immagini del sistema, del kernel e dei moduli necessari vengono precompilate e aggiornate in modo atomico, il che consente di evitare componenti come dkms e gestori di pacchetti, garantendo così un funzionamento stabile. È fornito un metodo semplice di installazione in un data center vuoto tramite PXE e l'installer talos-bootstrap simile a debian. All'interno della piattaforma è possibile distribuire facilmente 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 la gestione della rete dei servizi, MetalLB per l'annuncio dei servizi all'esterno. Lo storage è implementato su LINSTOR, dove si propone l'uso di ZFS come strato di base per lo storage e DRBD per la replica. È disponibile uno stack di monitoraggio preconfigurato basato su VictoriaMetrics e Grafana. Per l'avvio delle macchine virtuali viene utilizzata la tecnologia KubeVirt, che consente di avviare macchine virtuali tradizionali direttamente nei container Kubernetes e ha già tutte le integrazioni necessarie con Cluster API per l'avvio dei cluster Kubernetes gestiti all'interno di un cluster Kubernetes 'fisico'.
Negli ultimi cinque mesi, il team del progetto ha rilasciato le nuove versioni 0.31, 0.32 e 0.33. Tra le modifiche in queste versioni:
- Unificata la gestione dell'allocazione delle risorse di CPU e memoria. Sono state aggiunte variabili di configurazione comuni cpu-allocation-ratio e memory-allocation-ratio per limitare le risorse di CPU e l'uso della memoria nelle macchine virtuali gestite da KubeVirt. Le variabili si applicano a tutte le applicazioni gestite e ai limiti delle risorse dei tenant. Le preimpostazioni tengono conto anche dei coefficienti di allocazione delle risorse e si comportano come 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.
- Aggiunta la funzione di backup PVC nei cluster Kubernetes tenant, consentendo agli amministratori sia della piattaforma che di singoli tenant di creare backup e ripristinare i dati dei servizi in esecuzione nei cluster. Per il backup è stato utilizzato il progetto Velero, e il sistema richiede un'archiviazione esterna compatibile con S3.
- Implementato il supporto per l'uso di archiviazioni NFS condivise con un nuovo modulo di sistema opzionale.
- Aggiunta la possibilità di configurare i socket CPU disponibili per le macchine virtuali tramite il parametro resources.cpu.sockets, consentendo di assegnare socket specifici alle macchine virtuali.
- Aggiunto il supporto per l'uso di immagini golden pre-caricate per le macchine virtuali, che accelera la preparazione attraverso i riferimenti a immagini esistenti anziché il download tramite HTTP.
- Implementata l'opzione exposeMethod per Ingress-NGINX nei cluster tenant, che consente di scegliere tra Proxied e LoadBalancer.
- Migliorato il supporto per le applicazioni Java: i parametri "heap" vengono ora calcolati sulla base delle richieste e dei limiti di memoria.
- Sostituito il gestore pacchetti standard: ora si utilizza il nuovo strumento cozypkg (una shell attorno a Helm e Flux per lo sviluppo locale).
- Aggiunto il sincronizzatore HelmRelease per componenti di sistema, che fornisce il controllo automatico delle modifiche chiave nella configurazione per un aggiornamento tempestivo delle applicazioni di sistema.
- Aggiunta la supporto per il registry mirror nei cluster Kubernetes tenant, configurando containerd per i cluster tenant.
- Realizzata una marcatura unificata 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 forwarding delle porte in KubeVirt (SSH tramite virtctl).
- Abilitata la raccolta degli eventi e dei log di audit.
- Implementato il backup/ripristino di PostgreSQL.
- Aggiunto un nuovo strumento cozyreport e assicurata la raccolta dei report in CI. Ora tutte le informazioni diagnostiche vengono salvate come artefatti di build.
- 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.
- Fornita la possibilità di installare Talos in ambienti Air Gap.
- Aggiunta la supporto per le GPU nei cluster Kubernetes tenant. Gli utenti della piattaforma possono eseguire carichi di lavoro GPU sia in macchine virtuali che nei cluster Kubernetes.
- Garantita la beta-supporto per l'architettura ARM (build cross-architetturale). Il sistema di build è stato riprogettato per supportare file binari multi-architettura e immagini container.
- Espanso il VerticalPodAutoscaler (VPA), che è incluso per un maggior numero di componenti Cozystack e consente l'ottimizzazione automatica delle risorse. In particolare, il VPA è stato aggiunto per i cluster tenant del piano di controllo. pannelli di controllo Cozystack e etcd-operator. Tutti i componenti di Cozystack con VPA abilitato possono automaticamente regolare le loro richieste di CPU e memoria in base al loro utilizzo, migliorando così la stabilità.
- Aggiunta la supporto per Gateway API in Cilium, che consente di utilizzare funzionalità avanzate di routing L4/L7 tramite Kubernetes Gateway API.
- Fornita la possibilità di aggiungere parametri personalizzati nelle configurazioni di Cilium per i cluster tenant.
- Nel controller Tenant HelmRelease Reconcile è garantita la distribuzione delle modifiche di configurazione sui carichi di lavoro dei tenant (assicurando che qualsiasi HelmRelease definito nel tenant sia sincronizzato con gli aggiornamenti della piattaforma).
- È stata aggiunta la possibilità di configurare il coefficiente di allocazione della CPU su KubeVirt (come le CPU virtuali si relazionano con quelle fisiche) attraverso il valore cpu-allocation-ratio nel configmap. Gli amministratori possono ottimizzare l'overcommit della CPU per le macchine virtuali, mantenendo il giusto equilibrio tra prestazioni e densità.
- È stata implementata l'esportazione delle macchine virtuali KubeVirt. Questa funzione opera tramite VirtualMachineExport in KubeVirt e consente agli utenti di creare snapshot o backup delle immagini delle macchine virtuali.
- È stata garantita la compatibilità con diverse classi di archiviazione per le macchine virtuali. L'applicazione virtual-machine permette di scegliere qualsiasi StorageClass per il disco di sistema della macchina virtuale anziché utilizzare un PVC predefinito (vedi i valori systemDisk.storage e systemDisk.storageClass nella configurazione dell'applicazione).
Fonte: opennet.ru
