Fedora CoreOS, il borsalino intelligente per Container Linux
Fedora CoreOS è una distribuzione Linux che viene utilizzata come host container. È basata su CoreOS Container Linux ed è attivamente sviluppata e distribuita dallo sviluppatore americano Red Hat. Fedora CoreOS rappresenta il connubio perfetto tra il sistema CoreOS Container Linux e le soluzioni Fedora Atomic Host. Quest’ultimo controlla, ad esempio, la divisione in pacchetti e l’integrazione del modulo di sicurezza SELinux.
Il sistema operativo per server Fedora è il diretto successore di Red Hat Linux. Il noto marchio di Red Hat “Fedora” prende il nome dall’omonimo cappello in feltro, chiamato anche borsalino. Fedora si pone l’obiettivo di creare un sistema operativo per quasi tutte le aree di applicazione e i target. CoreOS Linux viene anche chiamato “Container Linux”, da non confondersi con Linux Container: dietro Container Linux, infatti, c’è un sistema operativo open source minimale, in grado di lavorare in totale autonomia e di eseguire applicazioni in ambiente Linux.
Nel 2018, Red Hat ha acquisito CoreOS e ha sviluppato Fedora CoreOS, un sistema upstream che dovrebbe andare a sostituire il classico Container Linux. Una prima promessa degli sviluppatori di Fedora CoreOS riguarda la capacità del sistema operativo di essere configurato in soli cinque minuti.
Che cos’è Fedora CoreOS?
Fedora CoreOS è una distribuzione Linux ottimizzata per lavorare con Kubernetes che si concentra sull’esecuzione di lavori basati su container. Il sistema operativo offre un buon livello di supporto grazie a update e correzioni automatiche, oltre a regolari aggiornamenti di sicurezza.
In quanto prodotto congiunto di CoreOS e Red Hat, Fedora CoreOS unisce in sé il meglio dei tool di entrambi i sistemi:
- Lo strumento Ignition di Container Linux: è usato per manipolare i dischi rigidi durante il processo di boot attraverso il file system iniziale in memoria (initial ram filesystem) per avviare Container Linux. In Fedora CoreOS, questo strumento è necessario per l’avvio e la configurazione delle immagini.
- Il sistema rpm-ostree di Red Hat: questo sistema di gestione dei pacchetti permette di assemblare gruppi di pacchetti con cui si può poi lavorare come se fossero un’immagine unica.
Fino a qui, Fedora CoreOS sembra avere tutte le carte in regola per presentarsi come un sistema host snello per container software, quindi come un prodotto analogo a Docker o come un sistema alternativo a Docker, al pari di OCI. I contenitori possono anche essere installati e gestiti come nei container classici con Podman o Moby. Di Fedora CoreOS convincono in particolare stabilità e sicurezza, sotto stretta osservanza delle direttive di SELinux.
Anche rpm-ostree offre la propria protezione contro gli attacchi e gli aggiornamenti o i pacchetti difettosi: in caso di emergenza è infatti possibile ripristinare le configurazioni precedenti.
Al termine di un processo di installazione rapido, semplice e flessibile, Fedora CoreOS può essere eseguito completamente senza che sia necessaria alcuna manutenzione. In questo modo, tutti gli aggiornamenti di sicurezza necessari vengono eseguiti automaticamente. Per evitare riavvii del sistema non pianificati, che nel peggiore dei casi possono portare alla perdita di dati, all’amministratore è data la possibilità di intervenire nei processi di aggiornamento e riavviare più sistemi in modo centralizzato.
Installazione di Fedora CoreOS
Fedora CoreOS può essere installato sia direttamente sull’hardware che su macchine virtuali, come VMware, OpenStack e QEMU. Inoltre, le immagini cloud di Fedora CoreOS sono disponibili anche per tutti i principali provider, tra cui AWS, Microsoft Azure, Google Cloud e Alibaba Cloud.
Per impostazione predefinita, il processo di installazione di Fedora CoreOS su sistemi Linux avviene in modalità minimale, cioè con solo le applicazioni necessarie per la sua esecuzione. Ignition legge automaticamente il file di configurazione al primo avvio e imposta il sistema. I parametri del file di configurazione permettono a Ignition di sapere com’è costituito il sistema. Vengono quindi definite le partizioni, creati gli utenti e assegnati i permessi. Se il file di configurazione si trova in un cloud, l’ambiente di installazione viene adeguato di conseguenza. Nel caso di AWS, ad esempio, la configurazione è inclusa nel sistema operativo, in modo che Fedora CoreOS possa essere installato con un solo clic.
Nel caso in cui si opti per l’installazione di Fedora CoreOS sul proprio hardware o hypervisor, si procede a configurare il sistema manualmente con il tool a riga di comando fcct (Fedora CoreOS Configuration Tool). Il primo passo consiste nella creazione di un file YAML, il quale viene quindi formattato in JSON. In un passaggio successivo, al file viene attribuita l’estensione .fcc (Fedora CoreOS Configuration). Nel file .fcc così ultimato, l’amministratore si fa riconoscere per mezzo dell’apposita chiave SSH.
Il file Ignition non serve solo per l’installazione, ma anche per la configurazione di Fedora CoreOS: le directory e i file, così come il loro contenuto, possono essere specificati tramite questo, anche direttamente durante l’installazione.
Una volta che il sistema è in funzione e si è effettuato il login con la chiave SSH, i container desiderati possono essere installati normalmente, ad esempio tramite Podman o Moby. Fedora CoreOS è compatibile con Docker e con le specifiche della Open Container Initiative. CoreOS può anche essere eseguito come installazione singola e gestito con Kubernetes.
Quali sono gli utilizzi di Fedora CoreOS?
Come Fedora Atomic Host, anche Fedora CoreOS è implementato come un sistema host container altamente disponibile, sicuro e flessibile. Anche se il sistema si installa in soli cinque minuti, lavorare con Fedora CoreOS non è assolutamente consigliato ai principianti. Durante la prima fase di utilizzo, chi non ha familiarità con l’universo Red Hat dovrà armarsi di molta pazienza.
Ma dove entra in gioco esattamente Fedora CoreOS? La risposta è la seguente: in sistemi di container che devono essere in grado di funzionare senza manutenzione. Questa capacità costituisce un requisito essenziale, tra l’altro, quando i servizi dei server sono gestiti in container che idealmente sono in grado di aggiornarsi autonomamente. Spesso, i sistemi operativi ordinari non possiedono questa capacità. Fedora CoreOS solleva gli amministratori da questo compito dispendioso e funziona anche meglio in assenza di ulteriori interventi. Fedora CoreOS si trova particolarmente a suo agio con i server riproducibili; qui il sistema opera una continua sostituzione dei pacchetti e dei container con versioni più attuali.
CoreOS: uno sguardo al passato
Quello che Fedora CoreOS è in grado di fare oggi, CoreOS è riuscito a farlo su piccola scala in passato. Il leggero sistema operativo open source utilizzava un kernel Linux ed era specializzato nell’esecuzione di applicazioni in Docker. CoreOS controllava anche l’esecuzione dei container Linux ed era inoltre in grado di distribuire configurazioni. Rilasciato nel 2013, CoreOS ha ottenuto rapidamente un grande successo, culminato nella vendita a Red Hat per 250 milioni di dollari. Il 26 maggio 2020, lo sviluppo di CoreOS come progetto a sé stante è stato interrotto; da allora, CoreOS continua a funzionare ufficialmente solo come parte di Fedora CoreOS.
I punti di forza di Fedora CoreOS in sintesi
Fedora CoreOS è un sistema sicuro, flessibile e assolutamente stabile per container Linux, operativo in meno di cinque minuti. In sintesi, i punti di forza di Fedora CoreOS sono i seguenti:
- il sistema può essere completamente configurato in pochi clic;
- basta effettuare il login tramite SSH per far partire il processo di installazione dei container;
- il sistema funziona fondamentalmente in maniera del tutto autonoma.
Rispetto al suo predecessore CoreOS, Fedora CoreOS presenta opzioni di implementazione molto maggiori e di conseguenza può rispondere alle esigenze di un pubblico notevolmente più ampio.
Non tutti gli utenti, però, vedono negli aggiornamenti automatici un punto a favore, poiché il timore che questi possano in qualche modo compromettere il buon funzionamento dei processi, o addirittura eliminarli, rimane. Va detto, in ogni caso, che ogni singolo aggiornamento viene attentamente controllato in un processo separato; le nuove versioni dei pacchetti vengono infatti prima testate nel Next Stream, un campo di prova che riflette l’attuale stato di sviluppo di Fedora CoreOS. Gli sviluppatori raccolgono tutti i futuri aggiornamenti del sistema operativo contenuti nel nuovo pacchetto, li eseguono e osservano i processi. Solo se tutto funziona senza complicazioni, i pacchetti vengono inviati allo Stable Stream, dove Fedora CoreOS estrae gli aggiornamenti e li installa automaticamente.