Podman 4.0 yang baru dirilis menampilkan penulisan ulang lengkap tumpukan jaringan berdasarkan Netavark dan Aardvark, yang akan berfungsi bersama tumpukan Antarmuka Jaringan Kontainer (CNI) yang ada.
Netavark adalah alat berbasis Rust untuk mengonfigurasi jaringan untuk wadah Linux yang berfungsi sebagai pengganti plugin CNI (containernetworking-plugins
di Fedora). Aardvark-dns sekarang menjadi server DNS otoritatif untuk catatan kontainer. Seiring dengan tumpukan baru, terjadi perubahan kemasan distro bersama dengan perubahan ketersediaan repositori untuk Fedora 35.
Untuk pengguna Fedora
Podman v4 tersedia sebagai paket Fedora resmi di Fedora 36 dan Rawhide. Netavark dan Aardvark-dns tersedia sebagai paket Fedora resmi pada Fedora 35 dan versi yang lebih baru dan membentuk tumpukan jaringan default untuk instalasi baru Podman 4.0.
Pada Fedora 36 dan yang lebih baru, penginstalan baru Podman v4 akan otomatis menginstal Aardvark-dns bersama dengan Netavark.
Untuk menginstal Podman v4:
$ sudo dnf install podman
Untuk memperbarui Podman dari versi lama ke v4:
$ sudo dnf update podman
Karena Podman v4 menampilkan beberapa perubahan yang melanggar dari Podman v3, pengguna Fedora 35 tidak dapat menginstal Podman v4 menggunakan repositori default. Namun, jika Anda ingin mencobanya, Anda dapat menggunakan repositori Copr sebagai gantinya:
$ sudo dnf copr enable rhcontainerbot/podman4
# install or update per your needs
$ sudo dnf install podman
Setelah instalasi, jika Anda ingin memigrasikan semua container Anda untuk menggunakan Netavark, Anda harus menyetel network_backend = "netavark"
di bawah [network]
bagian di containers.conf
. Anda , biasanya terletak di /usr/share/containers/containers.conf
.
Menguji versi pengembangan terbaru
Jika Anda ingin menguji kode upstream terbaru yang belum dirilis, coba podman-next
Copr:
$ sudo dnf copr enable rhcontainerbot/podman-next
$ sudo dnf install podman
PERHATIAN:podman-next
Copr menyediakan sumber Podman, Netavark, dan Aardvark-dns terbaru yang belum pernah dirilis sebagai RPM Package Managers (RPM). Ini akan menggantikan versi yang disediakan oleh paket resmi.
Untuk pembuat paket Fedora
Sumber pengemasan Fedora untuk Podman tersedia di repositori Fedora untuk pemeliharaan paket. Paket Podman utama tidak lagi secara eksplisit bergantung pada containernetworking-plugins
. Ketergantungan tumpukan jaringan sekarang ditangani di containers-common
package, yang memungkinkan pemeliharaan dependensi satu titik untuk Podman dan Buildah.
- containers-common
Requires: container-network-stack
Recommends: netavark
- netavark
Provides: container-network-stack = 2
- containernetworking-plugins
Provides: container-network-stack = 1
Konfigurasi ini memastikan bahwa:
- Instalasi baru Podman akan selalu menginstal Netavark secara default.
containernetworking-plugins
paket tidak akan bertentangan dengan Netavark, dan pengguna dapat menginstalnya bersama-sama.
Mencantumkan dependensi yang dibundel
Jika Anda perlu mencantumkan dependensi yang dibundel dalam sumber pengemasan Anda, Anda dapat memproses go.mod
file di sumber hulu. Misalnya, sumber pengemasan Fedora menggunakan:
$ 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 dan Aardvark-dns
Sumber vendor .tar untuk Netavark dan Aardvark-dns akan dilampirkan sebagai artefak rilis upstream. Kemudian Anda dapat membuat file konfigurasi Cargo untuk mengarahkannya ke direktori vendor:
tar xvf %{SOURCE}
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
Sumber pengemasan Fedora untuk Netavark dan Aardvark-dns juga tersedia di repositori Proyek Fedora.
Versi paket Fedora dari peti Rust yang menjadi sandaran Netavark dan Aardvark-dns sering kedaluwarsa (misalnya, rtnetlink, sha2, zbus, dan zvariant) pada saat pembuatan paket awal. Akibatnya, Netavark dan Aardvark-dns dibangun menggunakan dependensi yang divendorkan di hulu, ditemukan di vendor
subdirektori.
Biner netavark diinstal ke /usr/libexec/podman/netavark
, sedangkan biner aardvark-dns diinstal ke /usr/libexec/podman/aardvark-dns
.
netavark
paket memiliki Recommends
pada aardvark-dns
kemasan. aardvark-dns
paket akan diinstal secara default dengan Netavark, tetapi Netavark akan berfungsi tanpanya.
Mencantumkan dependensi yang dibundel
Jika Anda perlu membuat daftar dependensi yang dibundel dalam sumber pengemasan Anda, Anda dapat menjalankan cargo tree
perintah di sumber hulu. Misalnya, sumber pengemasan Fedora menggunakan:
$ cargo tree --prefix none | \
awk '{print "Provides: bundled(crate("$1")) = "$2}' | \
sort | uniq
Untuk mempelajari lebih lanjut
Saya harap pembaruan ini bermanfaat bagi Anda. Jika Anda memiliki pertanyaan, jangan ragu untuk membuka diskusi di GitHub, atau hubungi saya atau pengelola Podman lainnya melalui Slack, IRC, Matrx, atau Discord. Lebih baik lagi, kami ingin Anda bergabung dengan komunitas kami sebagai kontributor!