È stata pubblicata la versione 0.17.0 della piattaforma PaaS open source Cozystack, costruita su Kubernetes. Il progetto è progettato per fornire una piattaforma pronta all'uso per i fornitori di hosting e un framework per costruire cloud privati e pubblici. La piattaforma viene installata direttamente sui server e copre tutti gli aspetti della preparazione dell'infrastruttura per offrire servizi gestiti. Cozystack consente di avviare e fornire cluster Kubernetes, database e macchine virtuali. Il codice della piattaforma è disponibile su GitHub e distribuito con licenza Apache-2.0.
Come stack tecnologico di base viene utilizzato Talos Linux e Flux CD. Le immagini con il sistema operativo, il kernel e i moduli necessari vengono create in anticipo e aggiornate in modo atomico, permettendo di evitare componenti come dkms e gestori di pacchetti, garantendo una stabilità operativa. Viene fornito un metodo semplice per l'installazione in un data center vuoto utilizzando PXE e l'installatore simile a Debian talos-bootstrap.
La piattaforma include un'implementazione open source dell'infrastruttura di rete (fabric) basata 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 è offerta la possibilità di utilizzare ZFS come livello base per lo storage e DRBD per la replica. È presente un stack di monitoraggio preconfigurato basato su VictoriaMetrics e Grafana. Per l'avvio di macchine virtuali si utilizza la tecnologia KubeVirt, che consente di eseguire macchine virtuali tradizionali direttamente nei contenitori Kubernetes e dispone già di tutte le integrazioni necessarie con Cluster API per avviare cluster Kubernetes gestiti all'interno di un cluster Kubernetes "bare-metal".
Nella nuova versione:
- Sulla piattaforma è ora possibile creare macchine virtuali con più dischi, effettuare installazioni da CD-ROM e spostare i dischi da una macchina virtuale all'altra. L'applicazione precedente "Virtual Machine" è stata suddivisa in due parti distinte: "vm-disk" (Disco della Macchina Virtuale) e "vm-instance" (Istanza della Macchina Virtuale). L'applicazione vm-disk supporta il caricamento delle immagini tramite HTTP o unità locali; durante la creazione del disco è possibile specificare sorgente e tipo di immagine — CD-ROM o tradizionale. L'applicazione vm-instance consente di avviare una macchina virtuale utilizzando i dischi creati. È mantenuta la possibilità di utilizzare la vecchia applicazione Virtual Machine per garantire compatibilità.
- Sono state aggiunte le opzioni instanceType e instanceProfile, insieme a un set di istanze predefinite e profili per Ubuntu, RHEL, Alpine e Windows. È ora possibile configurare la macchina virtuale con i parametri ottimali in base al sistema operativo (ad esempio, abilitare il TPM e i dispositivi virtio, utilizzare il tablet-pointer); invece di specificare le risorse per la macchina virtuale, si possono utilizzare istanze standardizzate, progettate specificamente per determinati carichi di lavoro. I tipi di istanze si applicano anche a Kubernetes, consentendo una pianificazione più efficace dei gruppi di nodi.
- Nell'ingress è stata aggiunta l'opzione per abilitare il proxy per il caricamento delle immagini da macchine locali, ed è stata aggiornata la CDI per un funzionamento più preciso con i dispositivi a blocchi. È stata implementata la possibilità di caricare immagini per LINSTOR utilizzando l'utility virtctl.
- È stata aggiunta la supporto per le macchine virtuali con Windows. Con l'uso delle nuove vm-disk e vm-instance, è stata testata l'installazione di Windows 10 e Windows Server 2k15 da ISO, seguita dalla commutazione ai driver VirtIO.
- Con l'ordine dei bucket S3 è stata implementata la distribuzione automatica di un'interfaccia web per accedervi. Attraverso l'interfaccia web è possibile caricare e rimuovere file, oltre a generare link temporanei per l'accesso pubblico. L'interfaccia è basata su s3manager, distribuito sotto licenza Apache 2.0.

- Aggiunti alert per FluxCD che mostrano lo stato delle versioni. Gli alert sono strutturati e ora vengono suddivisi per categorie; inoltre, nel campo Resource viene visualizzata la risorsa problematica.
- È ora possibile ricevere alert su Telegram con deduplicazione e pulsanti per gestire il ciclo di vita di ogni alert.
- Nel Cluster API è stato incluso un controller MachineHealthChecks, che monitorerà lo stato dei nodi nel cluster Kubernetes. In caso di problemi, i nodi verranno automaticamente riordinati.
- Aggiunto il componente external-dns, che consente di configurare automaticamente le registrazioni DNS in Cloudflare. Inoltre, è stata implementata la possibilità di richiedere certificati tramite l'API di Cloudflare utilizzando il metodo DNS.
- Aggiunto l'external-secrets-operator, che permette di sincronizzare i segreti con sistemi esterni.
- Sono stati introdotti componenti opzionali, disabilitati per impostazione predefinita ma disponibili per l'attivazione tramite l'opzione bundle-enable nella configurazione di Cozystack.
- Migliorati i job per l'inizializzazione di PostgreSQL e FerretDB, che ora attendono il completo avvio del database prima di eseguire qualsiasi operazione di configurazione.
- Aumentata la stabilità di Kube-OVN. Disabilitata la comunicazione con NetworkManager. Su alcune sistemi, questo problema impediva l'avvio dei controller OVN.
- Aggiunta la configurazione dei log per Clickhouse. I log sono stati spostati in una sezione separata e configurata la rotazione.
- Aggiornati i componenti: LINSTOR 1.29.1, Talos Linux 1.8.1 e Cilium 1.16.3.
Fonte: opennet.ru

