Der neu veröffentlichte Podman 4.0 bietet eine vollständige Neufassung des Netzwerk-Stacks basierend auf Netavark und Aardvark, der neben dem bestehenden Container Networking Interface (CNI)-Stack funktionieren wird.
Netavark ist ein auf Rust basierendes Tool zum Konfigurieren von Netzwerken für Linux-Container, das als Ersatz für CNI-Plugins dient (containernetworking-plugins
auf Fedora). Aardvark-dns ist jetzt der maßgebliche DNS-Server für Containereinträge. Zusammen mit dem neuen Stack kommen Änderungen der Distributionsverpackung zusammen mit Änderungen der Repository-Verfügbarkeit für Fedora 35.
Für Fedora-Benutzer
Podman v4 ist als offizielles Fedora-Paket für Fedora 36 und Rawhide verfügbar. Sowohl Netavark als auch Aardvark-dns sind als offizielle Fedora-Pakete auf Fedora 35 und neueren Versionen verfügbar und bilden den Standard-Netzwerk-Stack für Neuinstallationen von Podman 4.0.
Auf Fedora 36 und neuer installieren Neuinstallationen von Podman v4 automatisch Aardvark-dns zusammen mit Netavark.
So installieren Sie Podman v4:
$ sudo dnf install podman
So aktualisieren Sie Podman von einer älteren Version auf v4:
$ sudo dnf update podman
Da Podman v4 einige Breaking Changes gegenüber Podman v3 enthält, können Fedora 35-Benutzer Podman v4 nicht mit den Standard-Repositories installieren. Wenn Sie es jedoch unbedingt ausprobieren möchten, können Sie stattdessen ein Copr-Repository verwenden:
$ sudo dnf copr enable rhcontainerbot/podman4
# install or update per your needs
$ sudo dnf install podman
Wenn Sie nach der Installation alle Ihre Container zur Verwendung von Netavark migrieren möchten, müssen Sie network_backend = "netavark"
festlegen unter [network]
Abschnitt in Ihrer containers.conf
, normalerweise unter /usr/share/containers/containers.conf
.
Testen der neuesten Entwicklungsversion
Wenn Sie den neuesten unveröffentlichten Upstream-Code testen möchten, versuchen Sie es mit podman-next
Copr:
$ sudo dnf copr enable rhcontainerbot/podman-next
$ sudo dnf install podman
ACHTUNG:Der podman-next
Copr bietet die neuesten unveröffentlichten Quellen von Podman, Netavark und Aardvark-dns als RPM-Paketmanager (RPMs). Diese überschreiben die von den offiziellen Paketen gelieferten Versionen.
Für Fedora-Paketierer
Die Fedora-Paketquellen für Podman sind im Fedora-Repository zur Paketpflege verfügbar. Das Podman-Hauptpaket hängt nicht mehr explizit von containernetworking-plugins
ab . Die Netzwerk-Stack-Abhängigkeiten werden jetzt in containers-common
behandelt -Paket, das eine einzelne Abhängigkeitsverwaltung für Podman und Buildah ermöglicht.
- containers-common
Requires: container-network-stack
Recommends: netavark
- netavark
Provides: container-network-stack = 2
- containernetworking-plugins
Provides: container-network-stack = 1
Diese Konfiguration stellt Folgendes sicher:
- Neue Installationen von Podman installieren standardmäßig immer Netavark.
- Die
containernetworking-plugins
Paket wird nicht mit Netavark in Konflikt geraten, und Benutzer können sie zusammen installieren.
Gebündelte Abhängigkeiten auflisten
Wenn Sie die gebündelten Abhängigkeiten in Ihren Paketquellen auflisten müssen, können Sie die go.mod
verarbeiten Datei in der Upstream-Quelle. Zum Beispiel verwendet Fedoras Paketquelle:
$ 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 und Aardvark-dns
Die .tar-Quelltexte für Netavark und Aardvark-dns werden als Upstream-Release-Artefakt angehängt. Dann können Sie eine Cargo-Konfigurationsdatei erstellen, um sie auf das Herstellerverzeichnis zu verweisen:
tar xvf %{SOURCE}
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
Die Fedora-Paketquellen für Netavark und Aardvark-dns sind auch im Repository des Fedora-Projekts verfügbar.
Die Fedora-Paketversionen der Rust-Kisten, von denen Netavark und Aardvark-dns abhängig sind, sind zum Zeitpunkt der ursprünglichen Paketerstellung häufig veraltet (z. B. rtnetlink, sha2, zbus und zvariant). Infolgedessen werden Netavark und Aardvark-dns unter Verwendung der Abhängigkeiten erstellt, die Upstream bereitgestellt werden und in vendor
zu finden sind Unterverzeichnis.
Die Netavark-Binärdatei wird unter /usr/libexec/podman/netavark
installiert , während die aardvark-dns-Binärdatei unter /usr/libexec/podman/aardvark-dns
installiert wird .
Der netavark
Paket hat einen Recommends
auf dem aardvark-dns
Paket. Der aardvark-dns
Paket wird standardmäßig mit Netavark installiert, aber Netavark wird ohne es funktionieren.
Gebündelte Abhängigkeiten auflisten
Wenn Sie die gebündelten Abhängigkeiten in Ihren Paketquellen auflisten müssen, können Sie den cargo tree
ausführen Befehl in der Upstream-Quelle. Zum Beispiel verwendet Fedoras Paketquelle:
$ cargo tree --prefix none | \
awk '{print "Provides: bundled(crate("$1")) = "$2}' | \
sort | uniq
Um mehr zu erfahren
Ich hoffe, Sie fanden diese Updates hilfreich. Wenn Sie Fragen haben, können Sie gerne eine Diskussion auf GitHub eröffnen oder mich oder die anderen Podman-Betreuer über Slack, IRC, Matrx oder Discord kontaktieren. Besser noch, wir würden uns freuen, wenn Sie unserer Community als Mitwirkender beitreten würden!