Vai al paragrafo

Cos'è Podman?

Copia URL

Podman (la contrazione di POD manager) è uno strumento open source pensato per lo sviluppo, la gestione e l'esecuzione dei container nei sistemi Linux®. Sviluppato originariamente dagli ingegneri di Red Hat® con il contributo della community open source, Podman gestisce l'intero ambiente dei container tramite la libreria libpod. 

L'architettura inclusiva e daemonless fanno di Podman uno strumento per la gestione dei container più sicuro e accessibile, mentre gli strumenti e le funzionalità associati, quali Buildah e Skopeo, consentono agli sviluppatori di personalizzare gli ambienti containerizzati in base alle proprie esigenze. 

I pod sono gruppi di container che vengono eseguiti insieme e condividono le stesse risorse, in modo simile ai pod Kubernetes. Podman gestisce i pod tramite una semplice interfaccia a riga di comando (CLI) e la libreria libpod, che fornisce le API per la gestione di container, pod, immagini di container e volumi. La CLI di Podman crea e supporta i container Open Container Initiative (OCI), pensati per soddisfare gli standard di settore in termini di runtime e formati dei container, sebbene nel progetto complementare, Buildah, siano presenti capacità di realizzazione più avanzate. Podman può essere eseguito su varie distribuzioni Linux, quali Red Hat Enterprise Linux, Fedora, CentOs e Ubuntu

Ogni pod è formato da un infra container e da un numero di container standard. L'infra container mantiene il pod in esecuzione e conserva gli spazi dei nomi degli utenti, isolando così i container dall'host. Gli altri container monitorano i propri processi per individuare i container non attivi, ovvero container non funzionanti che non possono essere eliminati dall'ambiente perché alcune delle risorse che contengono sono ancora in uso.

Podman si differenzia dagli altri motori per container perché non usa i daemon. I daemon, che possiamo definire come gli intermediari tra l'utente e il container, sono processi eseguiti in background nel sistema che si occupano del funzionamento dei container senza interfaccia utente. 

Sebbene i daemon rappresentino un metodo pratico per gestire l'ambiente dei container, possono anche introdurre vulnerabilità di sicurezza. Molti daemon vengono eseguiti con privilegi root. Nei sistemi Linux, l'account root agisce come utente con privilegi avanzati con accesso amministrativo (bypassando anche la richiesta di verifica degli amministratori) per la lettura dei file, l'installazione dei programmi, la modifica delle applicazioni e altro. Per questo i daemon sono i destinatari ideali di attacchi perpetrati da criminali informatici che puntano a introdursi nel sistema host prendendo il controllo dei container. 

Podman isola i daemon e consente agli utenti standard di eseguire i container senza interagire con un daemon del root oppure di utilizzare container rootless. In questa modalità, gli utenti possono creare, eseguire e gestire i container senza richiedere processi con privilegi di amministratore, il che si traduce in ambienti per container più accessibili senza compromessi per la sicurezza. Inoltre, Podman avvia ogni container con l'etichetta security-enhanced linux (SELinux), garantendo agli amministratori più controllo sulle risorse e sulle capacità fornite ai processi dei container.

Gli utenti possono invocare Podman dalla riga di comando per il pull dei container da un repository e per la loro esecuzione. Per creare il container da eseguire, Podman invia una chiamata al runtime del container configurato.  Se invece è presente un daemon dedicato, Podman utilizza systemd, un gestore di sistema e servizi per i sistemi operativi Linux, per effettuare gli aggiornamenti e mantenere in esecuzione i container in background. Integrando systemd e Podman puoi generare le unità di controllo per i tuoi container ed eseguirli con systemd abilitato in automatico.

Gli utenti possono gestire i propri repository nel sistema, così come le unità systemd, per controllare l'avvio automatico e la gestione dei propri container. Consentendo agli utenti di gestire le proprie risorse e di eseguire i container in modalità rootless, si scoraggiano procedure poco funzionali, ad esempio rendere modificabili /var/lib/container o altre procedure di gestione dei sistemi che possono esporre le applicazioni a ulteriori rischi di sicurezza. Ciò garantisce inoltre che ogni utente disponga di un set di container e immagini distinto e che possa utilizzare simultaneamente Podman sullo stesso host, senza interferenze con gli altri. Al termine del loro lavoro, gli utenti possono inviare le modifiche apportate a un registro comune per condividere le immagini con altri.

Per la gestione dei container, Podman si avvale di un'API RESTful (REST API). REST è l'acronimo di REpresentational State Transfer. Un'API REST è un'interfaccia di programmazione delle applicazioni conforme ai vincoli dello stile architetturale REST, che consente l'interazione con servizi web RESTful. L'API REST consente di eseguire una chiamata a Podman da piattaforme quali cURL, Postman, il client Advanced REST di Google e altri.

Podman è un motore per container modulare che, coniugato a strumenti quali Buildah e Skopeo, permette di creare e spostare i container. Con Buildah è possibile realizzare i container da zero o partendo da un'immagine. Skopeo sposta le immagini dei container tra vari tipi di sistemi di storage, permettendo la copia delle immagini tra registri come docker.io, quay.io e il registro interno o tra diversi tipi di storage nel sistema locale. L'ambiente flessibile e leggero ottenuto grazie a questo approccio modulare alla containerizzazione consente di ridurre le spese e di isolare le funzionalità necessarie per raggiungere gli obiettivi prefissi. L'evoluzione di strumenti leggeri e modulari è più rapida e permette a ognuno di essi di realizzare uno scopo specifico. 

Insieme, Podman, Buildah e Skopeo, sono un set di strumenti funzionali e versatili messi a tua disposizione in grado di soddisfare le esigenze degli ambienti containerizzati. Podman è lo strumento più grande tra loro. 

Per l'avvio dei container, Podman e Buildah utilizzano runC, il runtime OCI predefinito. Puoi creare ed eseguire un'immagine oppure eseguire immagini formattate in docker con runC. Questo strumento in linguaggio Go legge una specifica di runtime, configura il kernel Linux e quindi crea e avvia processi di container. Applicando alcune modifiche alla configurazione, puoi utilizzare Podman anche con altri footprint come crun.

Docker è una tecnologia di containerizzazione pensata per la creazione e l'utilizzo dei container Linux. La principale differenza tra Podman e Docker è l'architettura daemonless di Podman. I container Podman sono da sempre rootless, mentre Docker solo di recente ha aggiunto una modalità rootless alla propria configurazione daemon. Docker è uno strumento completo per la creazione e la gestione dei container, mentre Podman e gli strumenti associati come Buildah e Skopeo sono dedicati ad aspetti specifici della containerizzazione e permettono una personalizzazione basata sulle esigenze delle applicazioni cloud native. 

Podman è una valida alternativa a Docker, ma i due strumenti possono anche operare in sinergia. Gli utenti possono passare con facilità da uno all'altro con l'aliasing da Docker a Podman (alias docker=podman) e viceversa. Inoltre, un rpm chiamato podman-docker può rilasciare un "docker" nel PATH dell'applicazione di sistema, che esegue Podman per quegli ambienti in cui il comando "docker" è necessario, facilitando la transizione da Docker. La CLI di Podman è simile al motore per container di Docker, e gli utenti che hanno familiarità con uno sapranno utilizzare senza intoppi anche l'altro. 

Alcuni sviluppatori utilizzano Podman e Docker contemporaneamente, sviluppando con Docker e poi trasferendo il programma realizzato negli ambienti di runtime di Podman, per sfruttarne la sicurezza avanzata. 

Podman è adatto soprattutto agli sviluppatori che eseguono i container senza Kubernetes o OpenShift Container Platform. CRI-O è un motore per container open source gestito dalla community per l'orchestrazione dei container Kubernetes, come Red Hat OpenShift® Container Platform.

Podman ha rivoluzionato il mondo dei container offrendo le stesse capacità ad alte prestazioni dei principali motori per container e aggiungendo la flessibilità, l'accessibilità e la sicurezza avanzata, aspetti oggi sempre più importanti per i team di sviluppo. Con Podman puoi:

  • Gestire le immagini e l'intero ciclo di vita dei container, incluse le fasi di esecuzione, gestione delle reti, esame dei punti di controllo e rimozione.
  • Eseguire e isolare le risorse per container e pod rootless.
  • Supportare immagini OCI e Docker e una CLI compatibile con Docker.
  • Creare un ambiente daemonless più sicuro e con minor consumo delle risorse inutilizzate. 
  • Distribuire un'API REST a supporto delle funzionalità avanzate di Podman.
  • Implementare la funzionalità checkpoint/restore per i container Linux con checkpoint/restore in userspace (CRIU). CRIU può congelare un container in esecuzione e salvarne i contenuti di memoria e lo stato su disco, permettendo il riavvio dei carichi di lavoro containerizzati in meno tempo.
  • Aggiornare automaticamente i container. Podman rileva se un container aggiornato si arresta e ne esegue automaticamente il rollback all'ultima versione funzionante, offrendo nuovi livelli di affidabilità delle applicazioni. 

Ogni sottoscrizione Red Hat Enterprise Linux include Podman. Questo significa che gli utenti possono eseguire container compatibili con OCI e realizzati tramite un'immagine UBI affidabile e supportata. Red Hat Enterprise Linux, riconosciuto come lo standard per l'esecuzione di container Linux negli ambienti enterprise, permette agli sviluppatori di avviare con facilità i container, di gestire i deployment e di accelerare lo sviluppo di nuove applicazioni. Senza contare che la portabilità delle applicazioni e dei container creati su Red Hat Enterprise Linux per gli ambienti di cloud ibrido e aperto garantisce l'agilità necessaria per adattarsi all'evoluzione degli obiettivi aziendali.

La web console di Red Hat Enterprise Linux, un'interfaccia web di facile utilizzo, permette di semplificare il deployment e l'amministrazione quotidiana dei sistemi. La web console include anche Podman per aiutare i team a gestire i container e le immagini. Monitora l'utilizzo di CPU e di memoria dei container dalla dashboard della web console accedendo agli host di container e osservando i carichi sul sistema. Questo strumento web agevola tutte le attività legate alla gestione dei container, da quelle di routine alle operazioni più complesse.

Grazie agli Ansible Playbooks, Red Hat Ansible® Automation Platform permette di automatizzare le funzioni di Podman quali installazione, deployment di container e altre attività che spesso richiedono molto tempo e risorse. 

Podman e gli altri strumenti per container basati sugli standard open source fanno di Red Hat Enterprise Linux un host per container efficiente che fornisce supporto, stabilità e sicurezza per gli ambienti di produzione e che semplifica le iniziative di adozione di Kubernetes e Red Hat OpenShift.

Keep reading

ARTICOLO

Container e VM

I container Linux e le macchine virtuali (VM) sono entrambi pacchetti di ambienti di elaborazione che combinano vari componenti IT e li isolano dal resto del sistema.

ARTICOLO

Cos'è l'orchestrazione dei container?

Definiamo orchestrazione dei container l'automazione dei processi di deployment, gestione, scalabilità e networking dei container.

ARTICOLO

Cos'è un container Linux?

Un container Linux è un insieme di processi, isolati dal resto del sistema, che esegue un'immagine distinta contenente tutti i file necessari per supportare tali processi.

Scopri di più su Red Hat Enterprise Linux

Prodotti

Una base stabile e versatile ideale per rilasciare nuove applicazioni, virtualizzare gli ambienti e ottenere un cloud ibrido più sicuro.

Risorse

Ebook

Estendi l'innovazione e l'efficienza operativa con Linux.

Continua a leggere

CHECKLIST

L'azienda tecnologica globale promuove l'utilizzo del 5G all'edge della rete

CHECKLIST

L'importanza del sistema operativo

CHECKLIST

Perché Red Hat Enterprise Linux è meglio di CentOS Stream per l'uso in produzione

CHECKLIST

5 modi per rinnovare l'ambiente SAP con Red Hat e AWS

CHECKLIST

4 modi con cui Red Hat e Nutanix risolvono le sfide dell'IT moderno

INFOGRAFICA

Red Hat Enterprise Linux su Microsoft Azure

SCHEDA INFORMATIVA

Guida alle sottoscrizioni Red Hat Enterprise Linux

SCHEDA TECNICA

Automazione e gestione con Red Hat Enterprise Linux

SCHEDA TECNICA

Red Hat Enterprise Linux per i carichi di lavoro all'edge

SCHEDA TECNICA

Passa da CentOS Linux a Red Hat Enterprise Linux

SCHEDA TECNICA

Red Hat Edge

SCHEDA TECNICA

Soluzioni Red Hat per SAP

SINTESI

Prestazioni di Red Hat Enterprise Linux

SINTESI

Sicurezza e conformità con Red Hat Enterprise Linux

SINTESI

Incrementa la sicurezza e la coerenza del cloud ibrido

SINTESI

Percorso per l'acquisizione di competenze per Red Hat Enterprise Linux

SINTESI

Incrementa prestazioni e agilità del database

SINTESI

Missione compiuta: edge computing nello spazio

PANORAMICA

Riduci i downtime di SAP HANA con la tecnologia Red Hat

PANORAMICA

Semplifica la transizione al cloud con Red Hat e Google Cloud

PANORAMICA

Red Hat Enterprise Linux for SAP Solutions

EBOOK

Nove motivi per provare Red Hat Enterprise Linux 9

EBOOK

Ottieni il massimo dall'ambiente operativo Linux

EBOOK

Red Hat Enterprise Linux e Microsoft Azure

EBOOK

Un framework IT efficiente come base per il successo dell'impresa moderna

EBOOK

La standardizzazione come strategia per migliorare l'efficienza IT

EBOOK

Apri le porte a nuove possibilità di innovazione e crescita nelle tre aree chiave dell'IT, con Red Hat

EBOOK

10 motivi per scegliere Red Hat per carichi di lavoro SAP

Formazione

Corso di formazione gratuito

Red Hat Enterprise Linux Technical Overview