Il Podman 4.0 appena rilasciato presenta una riscrittura completa dello stack di rete basato su Netavark e Aardvark, che funzionerà insieme allo stack CNI (Container Networking Interface) esistente.
Netavark è uno strumento basato su Rust per la configurazione della rete per i container Linux che funge da sostituto dei plug-in CNI (containernetworking-plugins
su Fedora). Aardvark-dns è ora il server DNS autorevole per i record container. Insieme al nuovo stack arrivano le modifiche al packaging della distribuzione insieme alle modifiche alla disponibilità del repository per Fedora 35.
Per gli utenti Fedora
Podman v4 è disponibile come pacchetto Fedora ufficiale su Fedora 36 e Rawhide. Sia Netavark che Aardvark-dns sono disponibili come pacchetti Fedora ufficiali su Fedora 35 e versioni successive e costituiscono lo stack di rete predefinito per le nuove installazioni di Podman 4.0.
Su Fedora 36 e versioni successive, le nuove installazioni di Podman v4 installeranno automaticamente Aardvark-dns insieme a Netavark.
Per installare Podman v4:
$ sudo dnf install podman
Per aggiornare Podman da una versione precedente alla v4:
$ sudo dnf update podman
Poiché Podman v4 presenta alcune modifiche importanti rispetto a Podman v3, gli utenti di Fedora 35 non possono installare Podman v4 utilizzando i repository predefiniti. Tuttavia, se sei ansioso di provarlo, puoi invece utilizzare un repository Copr:
$ sudo dnf copr enable rhcontainerbot/podman4
# install or update per your needs
$ sudo dnf install podman
Dopo l'installazione, se desideri migrare tutti i tuoi container per utilizzare Netavark, devi impostare network_backend = "netavark"
sotto il [network]
sezione nel tuo containers.conf
, in genere situato in /usr/share/containers/containers.conf
.
Test dell'ultima versione di sviluppo
Se desideri testare l'ultimo codice upstream non rilasciato, prova podman-next
Poliziotto:
$ sudo dnf copr enable rhcontainerbot/podman-next
$ sudo dnf install podman
ATTENZIONE:Il podman-next
Copr fornisce le ultime fonti inedite di Podman, Netavark e Aardvark-dns come RPM Package Manager (RPM). Questi sovrascriveranno le versioni fornite dai pacchetti ufficiali.
Per i packager Fedora
I sorgenti dei pacchetti Fedora per Podman sono disponibili nel repository di Fedora per la manutenzione dei pacchetti. Il pacchetto Podman principale non dipende più esplicitamente da containernetworking-plugins
. Le dipendenze dello stack di rete sono ora gestite in containers-common
pacchetto, che consente un unico punto di manutenzione delle dipendenze per Podman e Buildah.
- containers-common
Requires: container-network-stack
Recommends: netavark
- netavark
Provides: container-network-stack = 2
- containernetworking-plugins
Provides: container-network-stack = 1
Questa configurazione garantisce che:
- Le nuove installazioni di Podman installeranno sempre Netavark per impostazione predefinita.
- I
containernetworking-plugins
il pacchetto non entrerà in conflitto con Netavark e gli utenti possono installarli insieme.
Elenco delle dipendenze in bundle
Se hai bisogno di elencare le dipendenze raggruppate nelle tue fonti di confezionamento, puoi elaborare il go.mod
file nella sorgente a monte. Ad esempio, il sorgente di packaging di Fedora utilizza:
$ awk '{print "Provides: bundled(golang("$1")) = "$2}' go.mod | \
sort | uniq | sed -e 's/-/_/g' -e '/bundled(golang())/d' -e '/bundled(golang(go\
|module\|replace\|require))/d'
Netavark e Aardvark-dns
I sorgenti forniti da .tar per Netavark e Aardvark-dns saranno allegati come artefatto di rilascio a monte. Quindi puoi creare un file di configurazione Cargo per puntarlo alla directory del fornitore:
tar xvf %{SOURCE}
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
I sorgenti di pacchettizzazione Fedora per Netavark e Aardvark-dns sono disponibili anche nel repository del progetto Fedora.
Le versioni dei pacchetti Fedora delle casse Rust da cui dipendono Netavark e Aardvark-dns sono spesso obsolete (ad esempio, rtnetlink, sha2, zbus e zvariant) al momento della creazione iniziale del pacchetto. Di conseguenza, Netavark e Aardvark-dns vengono creati utilizzando le dipendenze fornite a monte, che si trovano nel vendor
sottodirectory.
Il binario netavark viene installato in /usr/libexec/podman/netavark
, mentre il binario aardvark-dns è installato su /usr/libexec/podman/aardvark-dns
.
Il netavark
il pacchetto ha un Recommends
sul aardvark-dns
pacchetto. Il aardvark-dns
il pacchetto verrà installato per impostazione predefinita con Netavark, ma Netavark funzionerà senza di esso.
Elenco delle dipendenze in bundle
Se devi elencare le dipendenze raggruppate nelle tue fonti di imballaggio, puoi eseguire il cargo tree
comando nella sorgente a monte. Ad esempio, il sorgente di packaging di Fedora utilizza:
$ cargo tree --prefix none | \
awk '{print "Provides: bundled(crate("$1")) = "$2}' | \
sort | uniq
Per saperne di più
Spero che questi aggiornamenti siano stati utili. In caso di domande, non esitare ad aprire una discussione su GitHub o contatta me o gli altri manutentori di Podman tramite Slack, IRC, Matrx o Discord. Meglio ancora, ci piacerebbe che tu entrassi a far parte della nostra community come contributore!