Nově vydaný Podman 4.0 obsahuje kompletní přepsání síťového zásobníku založeného na Netavark a Aardvark, který bude fungovat společně se stávajícím zásobníkem Container Networking Interface (CNI).
Netavark je nástroj založený na Rustu pro konfiguraci sítí pro kontejnery Linuxu, který slouží jako náhrada zásuvných modulů CNI (containernetworking-plugins
na Fedoře). Aardvark-dns je nyní autoritativní server DNS pro záznamy kontejnerů. Spolu s novým zásobníkem přicházejí změny balení distribuce spolu se změnami dostupnosti úložiště pro Fedora 35.
Pro uživatele Fedory
Podman v4 je k dispozici jako oficiální balíček Fedory na Fedoře 36 a Rawhide. Oba Netavark a Aardvark-dns jsou dostupné jako oficiální balíčky Fedory na Fedoře 35 a novějších verzích a tvoří výchozí síťový zásobník pro nové instalace Podman 4.0.
Na Fedoře 36 a novější nové instalace Podman v4 automaticky nainstalují Aardvark-dns spolu s Netavark.
Chcete-li nainstalovat Podman v4:
$ sudo dnf install podman
Chcete-li aktualizovat Podman ze starší verze na v4:
$ sudo dnf update podman
Protože Podman v4 obsahuje některé přelomové změny oproti Podman v3, uživatelé Fedory 35 nemohou nainstalovat Podman v4 pomocí výchozích úložišť. Pokud to však chcete vyzkoušet, můžete místo toho použít úložiště Copr:
$ sudo dnf copr enable rhcontainerbot/podman4
# install or update per your needs
$ sudo dnf install podman
Chcete-li po instalaci migrovat všechny své kontejnery na používání Netavark, musíte nastavit network_backend = "netavark"
pod [network]
v sekci containers.conf
, který se obvykle nachází na adrese /usr/share/containers/containers.conf
.
Testování nejnovější vývojové verze
Pokud byste chtěli otestovat nejnovější nevydaný upstream kód, vyzkoušejte podman-next
Copr:
$ sudo dnf copr enable rhcontainerbot/podman-next
$ sudo dnf install podman
POZOR:podman-next
Copr poskytuje nejnovější nevydané zdroje Podman, Netavark a Aardvark-dns jako RPM Package Managers (RPM). Ty přepíší verze dodávané oficiálními balíčky.
Pro baliče Fedory
Zdroje balíčků Fedory pro Podman jsou dostupné v úložišti Fedory pro údržbu balíčků. Hlavní balíček Podman již není explicitně závislý na containernetworking-plugins
. Závislosti síťového zásobníku jsou nyní řešeny v containers-common
balíček, který umožňuje správu závislostí v jediném bodě pro Podman a Buildah.
- containers-common
Requires: container-network-stack
Recommends: netavark
- netavark
Provides: container-network-stack = 2
- containernetworking-plugins
Provides: container-network-stack = 1
Tato konfigurace zajišťuje, že:
- Nové instalace Podman vždy nainstalují Netavark ve výchozím nastavení.
containernetworking-plugins
balíček nebude v konfliktu s Netavark a uživatelé je mohou nainstalovat společně.
Výpis sdružených závislostí
Pokud potřebujete vypsat sdružené závislosti ve zdrojích balíčků, můžete zpracovat go.mod
soubor v upstream zdroji. Zdroj balení Fedory například používá:
$ 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 a Aardvark-dns
Zdroje .tar pro Netavark a Aardvark-dns budou připojeny jako upstreamový artefakt vydání. Poté můžete vytvořit konfigurační soubor Cargo, který jej nasměruje do adresáře dodavatele:
tar xvf %{SOURCE}
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
Zdroje balíčků Fedory pro Netavark a Aardvark-dns jsou také dostupné v úložišti projektu Fedora.
Verze přepravek Rust zabalené ve Fedoře, na kterých závisí Netavark a Aardvark-dns, jsou často zastaralé (například rtnetlink, sha2, zbus a zvariant) v době počátečního vytvoření balíčku. Výsledkem je, že Netavark a Aardvark-dns jsou sestaveny pomocí závislostí dodávaných upstream, které najdete v vendor
podadresář.
Binární soubor netavark je nainstalován do /usr/libexec/podman/netavark
, zatímco binární soubor aardvark-dns je nainstalován do /usr/libexec/podman/aardvark-dns
.
netavark
balíček má Recommends
na aardvark-dns
balík. aardvark-dns
balíček bude standardně nainstalován s Netavark, ale Netavark bude funkční i bez něj.
Výpis sdružených závislostí
Pokud potřebujete vypsat sdružené závislosti ve zdrojích balíčků, můžete spustit cargo tree
příkaz v upstream zdroji. Zdroj balení Fedory například používá:
$ cargo tree --prefix none | \
awk '{print "Provides: bundled(crate("$1")) = "$2}' | \
sort | uniq
Další informace
Doufám, že vám tyto aktualizace pomohly. Pokud máte nějaké dotazy, neváhejte otevřít diskusi na GitHubu nebo kontaktujte mě nebo ostatní správce Podman přes Slack, IRC, Matrx nebo Discord. A co je ještě lepší, byli bychom rádi, kdybyste se připojili k naší komunitě jako přispěvatel!