È disponibile il rilascio della piattaforma PaaS open source Cozystack 0.22.0, costruita su Kubernetes. Il progetto mira a fornire una piattaforma pronta per i fornitori di hosting e un framework per costruire cloud privati e pubblici. La piattaforma si installa direttamente sui server e copre tutti gli aspetti della preparazione dell'infrastruttura per la fornitura di servizi gestiti. Cozystack consente di avviare e fornire cluster Kubernetes, database e macchine virtuali. Il codice della piattaforma è disponibile su GitHub ed è 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 sono stati aggiunti il cozystack-controller e nuove entità: Workload e WorkloadMonitor, che consentono di monitorare lo stato dei pod gestiti dagli operatori e valutare il livello di servizio secondo regole predeterminate. Le applicazioni in Cozystack sono gestite da diversi operatori, pertanto è stato deciso di creare un formato unico per visualizzare lo stato di ciascun servizio.
Come funziona: quando un'applicazione viene distribuita, viene installato anche il WorkloadMonitor, che tiene traccia dello stato dei pod attraverso un selettore. Non appena uno dei pod corrisponde al selettore, viene creata una nuova entità Workload, che indica il ruolo di ciascun pod e il suo stato. Nello stato del WorkloadMonitor è possibile vedere il numero di repliche attuali e il numero minimo di repliche necessario per mantenere attivo il servizio. Se il carico (workload) diventa inferiore al valore minReplicas per il WorkloadMonitor, il servizio viene contrassegnato come non operativo (non-operational).
Per le applicazioni che non possono avere un valore esatto per minReplicas (ad esempio, i worker Kubernetes possono scalare automaticamente), è possibile non specificare affatto questo valore in WorkloadMonitor. In tal caso, WorkloadMonitor calcolerà semplicemente il numero totale di istanze in esecuzione.
Questo meccanismo consente di utilizzare qualsiasi operatore e meccanismo di gestione dei pod in Kubernetes e di ampliare facilmente la piattaforma, fornendo un'interfaccia unificata per visualizzare lo stato attuale del servizio.
WorkloadMonitor per raccogliere informazioni sulle repliche e sulla loro operatività è stato aggiunto ad applicazioni Kubernetes, Postgres, Monitoring, VirtualMachine, VMInstance, Redis, etcd e SeaweedFS. Ora il dashboard Cozystack mostra il numero di repliche dell'applicazione e il livello di servizio per ogni gruppo di Workload.
Altre modifiche:
- Sono stati realizzati e pubblicati sotto licenza Apache 2.0 il client e il server di telemetria. La raccolta delle metriche per la telemetria avviene in conformità con le linee guida della «LF Telemetry Data Collection and Usage Policy», e può essere disattivata utilizzando l'opzione «telemetry-enabled: false» nella configurazione di Cozystack. I dati stessi sono anonimi e completamente de-identificati. È previsto di creare un Dashboard pubblico basato sulle informazioni di telemetria nelle prossime versioni della piattaforma.
- Aggiornato il componente cluster-autoscaler per Kubernetes e le sue impostazioni, che consentono una scalabilità più efficace dei cluster, sia verso l'alto che verso il basso.
- Aggiornato il file MAINTAINERS, che elenca i partecipanti che seguono il progetto e le rispettive aree di responsabilità.
- A Cozystack è stata aggiunta un'applicazione di servizio builder, che consente di assemblare la piattaforma direttamente in Kubernetes.
- Per il database VictoriaMetrics è stata aggiunta la possibilità di specificare parametri personalizzati e sono stati aumentati i vincoli predefiniti.
- Per Grafana e Alerta è stata implementata la raccolta di metriche da banche dati.
- Sono stati aggiunti avvisi sullo stato delle macchine virtuali e dei cluster Postgres.
- Per KubeVirt è stata configurata la raccolta di metriche e aggiunto un dashboard Grafana.
- Nella configurazione di Cozystack è stata aggiunta l'opzione extra-keycloak-redirect-uri-for-dashboard, che consente di impostare ulteriori reindirizzamenti per Keycloak.
- In VMInstance è stato corretto un errore che bloccava la connessione di VMdisks alle macchine virtuali.
- Aggiornati Flux Operator 0.12.0, Flux Instance chart 0.12.0, Cilium 1.16.5, Kube-OVN 1.13.2, CNPG PostgreSQL Operator 1.25.0, Talos Linux 1.9.1.
Fonte: opennet.ru
