I LINUX CONTAINER NON SONO MAGIA. SONO LINUX!

Spesso installare mantenendo applicativi non è facile specialmente quando questi vengono forniti all’esterno del repository di sistema – ossia sui canali di distribuzione ufficiale dei programmi relativi al nostro sistema operativo.

C’è il rischio di complicarsi la vita configurando un’applicazione distribuita all’interno di uno zip o installato tramite un misterioso script bash.

Parliamo di container e di come questi funzionino grazie ad alcune funzionalità base del sistema operativo Linux.

I vantaggi dei container rispetto all’approccio classico sono innumerevoli

Il paradigma dei container Linux punta a standardizzare il ciclo di vita di un’applicazione, dal suo avvio all’aggiornamento e, in caso di problemi, persino al suo roll back.

Le operazioni per scaricare ed eseguire altre applicazioni non saranno particolarmente differenti una volta imparati i comandi di base.

Il concetto base della containerizzazione è l’isolamento tra i processi e le risorse. I processi di un container girano isolati da quelli del sistema host ed accedono ad un set ristretto di risorse in maniera simile a quanto avviene con una virtual machine ma con una footprint ridotta in quanto non dovremo virtualizzare l’hardware.

Alla base del funzionamento dei container ci sono delle funzionalità core di Linux incluse nella maggior parte delle distribuzioni.

Ma quali sono queste funzionalità di cui stiamo parlando?

  • Namespaces. Una funzionalità del kernel che permette di isolare i processi, la rete, le comunicazioni tra i processi e i volumi montati.
  • Capabilities e SecComp. Permettono all’applicazione di far affidamento su funzionalità riservate all’utente root senza per questo concedervi tutti i permessi che sono normalmente riservati a quest’ultimo.
  • SELinux. Un’evoluzione rispetto ai permessi base di Linux, consente ai processi di accedere solamente ai files di un contesto specificato – ad esempio permettendo a un server web di accedere ai file da servire ma non alla cartella home dell’utente applicativo.
  • Chroot. Il suo scopo è isolare l’applicazione all’interno di un’area riservata in modo che questa non veda i file all’esterno del suo sistema.

Non è necessario interfacciarsi con tutte queste componenti singolarmente!

Per configurare, avviare e mantenere un container esistono programmi appositi.

Nel mondo Red Hat troviamo Podman, uno strumento Open Source simile a Docker ma decisamente molto più potente e maturo; entrambi i progetti fanno uso delle immagini basate sugli standard OCI (Open Container Initiative) che memorizzano l’applicativo in più strati.

Queste immagini sono vere e proprie bolle di Linux in quanto l’immagine base contiene una distro Linux minimale e negli strati superiori – che si aggiungono – ci sono metadati, librerie e binari dell’applicazione.

Il container runtime si occupa di unire gli strati, configurare le restrizioni dei container e avviare il processo specificato.

Podman, poi, aggiunge due importantissime funzionalità rispetto a Docker:

  • la gestione dei cosiddetti “pod” che possono raggruppare più container al loro interno, permettendo la comunicazione tra i processi e condividendo, per esempio, i namespaces di rete e i limiti di cgroups.
  • la capacità di lavorare con gli oggetti di Kubernetes e di esportarli in formato yaml.

Grazie all’utilizzo dei container, la gestione delle applicazioni diventa molto più semplice e sicura grazie alla standardizzazione delle componenti e dei procedimenti.

L’evoluzione l’abbiamo con gli orchestratori: il gold standard è sicuramente usare Kubernetes o una delle distribuzioni come Red Hat OpenShift. 

Per approfondire questo argomento iscriviti al corso www.do080.it!

Si tratta del corso gratuito DO080 Deploying Containerized Applications Technical Overview; un corso Red Hat di 3 ore, tenuto dagli istruttori EXTRAORDY- la formazione ufficiale Red Hat che spiega come amministrare i container e imparare le metodologie e i paradigmi che li governano.

Iscriviti ora! 

www.do080.it

Ti piacerebbe diventare anche tu uno di noi e pubblicare i tuoi articoli nel blog degli RHCE italiani?

Panoramica privacy
EXTRAORDY | Your Red Hat Trusted Mentor

Questo sito utilizza i cookie in modo da offrirti la migliore esperienza utente possibile. Le informazioni sui cookie sono memorizzate nel tuo browser e svolgono funzioni come riconoscerti quando ritorni sul nostro sito e aiutare il nostro team a capire quali sezioni del sito ritieni più interessanti e utili.

Pertanto per una completa fruizione del presente sito, si consiglia di configurare il browser in modo che accetti la ricezione dei cookie.

Cookie strettamente necessari

I cookie strettamente necessari dovrebbero essere abilitati in ogni momento in modo che possiamo salvare le tue preferenze per offrirti la miglior esperienza possibile sul nostro sito.

 

Se disabiliti questo cookie, non saremo in grado di salvare le tue preferenze. Ciò significa che ogni volta che visiti questo sito web dovrai abilitare o disabilitare nuovamente i cookie.

Cookie di terze parti

Questo sito utilizza Google Analytics per raccogliere informazioni anonime quali il numero di visitatori del sito e le pagine più popolari.

Mantenere abilitato questo cookie ci aiuta a migliorare il nostro sito.