El Podman 4.0 recientemente lanzado presenta una reescritura completa de la pila de red basada en Netavark y Aardvark, que funcionará junto con la pila existente de la interfaz de red de contenedores (CNI).
Netavark es una herramienta basada en Rust para configurar redes para contenedores de Linux que reemplaza los complementos de CNI (containernetworking-plugins
en Fedora). Aardvark-dns es ahora el servidor DNS autorizado para registros de contenedores. Junto con la nueva pila vienen cambios en el empaque de la distribución junto con cambios en la disponibilidad del repositorio para Fedora 35.
Para usuarios de Fedora
Podman v4 está disponible como paquete oficial de Fedora en Fedora 36 y Rawhide. Tanto Netavark como Aardvark-dns están disponibles como paquetes oficiales de Fedora en Fedora 35 y versiones más recientes y forman la pila de red predeterminada para las nuevas instalaciones de Podman 4.0.
En Fedora 36 y posteriores, las instalaciones nuevas de Podman v4 instalarán automáticamente Aardvark-dns junto con Netavark.
Para instalar Podman v4:
$ sudo dnf install podman
Para actualizar Podman de una versión anterior a v4:
$ sudo dnf update podman
Debido a que Podman v4 presenta algunos cambios importantes con respecto a Podman v3, los usuarios de Fedora 35 no pueden instalar Podman v4 usando los repositorios predeterminados. Sin embargo, si está ansioso por probarlo, puede usar un repositorio de Copr en su lugar:
$ sudo dnf copr enable rhcontainerbot/podman4
# install or update per your needs
$ sudo dnf install podman
Después de la instalación, si desea migrar todos sus contenedores para usar Netavark, debe configurar network_backend = "netavark"
bajo el [network]
sección en su containers.conf
, normalmente ubicado en /usr/share/containers/containers.conf
.
Probando la última versión de desarrollo
Si desea probar el último código upstream inédito, pruebe el podman-next
Copia:
$ sudo dnf copr enable rhcontainerbot/podman-next
$ sudo dnf install podman
PRECAUCIÓN:podman-next
Copr proporciona las últimas fuentes inéditas de Podman, Netavark y Aardvark-dns como administradores de paquetes RPM (RPM). Estos anularán las versiones proporcionadas por los paquetes oficiales.
Para empaquetadores de Fedora
Las fuentes de paquetes de Fedora para Podman están disponibles en el repositorio de Fedora para el mantenimiento de paquetes. El paquete principal de Podman ya no depende explícitamente de containernetworking-plugins
. Las dependencias de la pila de red ahora se manejan en containers-common
paquete, que permite un punto único de mantenimiento de dependencias para Podman y Buildah.
- containers-common
Requires: container-network-stack
Recommends: netavark
- netavark
Provides: container-network-stack = 2
- containernetworking-plugins
Provides: container-network-stack = 1
Esta configuración asegura que:
- Las nuevas instalaciones de Podman siempre instalarán Netavark de forma predeterminada.
- Los
containernetworking-plugins
El paquete no entrará en conflicto con Netavark y los usuarios pueden instalarlos juntos.
Listado de dependencias agrupadas
Si necesita enumerar las dependencias agrupadas en sus fuentes de empaquetado, puede procesar el go.mod
archivo en la fuente ascendente. Por ejemplo, la fuente de empaquetado de Fedora usa:
$ 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 y Aardvark-dns
Las fuentes .tar vendidas para Netavark y Aardvark-dns se adjuntarán como un artefacto de lanzamiento ascendente. Luego puede crear un archivo de configuración de Cargo para apuntarlo al directorio de proveedores:
tar xvf %{SOURCE}
mkdir -p .cargo
cat >.cargo/config << EOF
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
Las fuentes de empaquetado de Fedora para Netavark y Aardvark-dns también están disponibles en el repositorio del Proyecto Fedora.
Las versiones empaquetadas de Fedora de las cajas Rust de las que dependen Netavark y Aardvark-dns suelen estar desactualizadas (por ejemplo, rtnetlink, sha2, zbus y zvariant) en el momento de la creación del paquete inicial. Como resultado, Netavark y Aardvark-dns se construyen utilizando las dependencias proporcionadas en sentido ascendente, que se encuentran en el vendor
subdirectorio.
El binario de netavark se instala en /usr/libexec/podman/netavark
, mientras que el binario aardvark-dns está instalado en /usr/libexec/podman/aardvark-dns
.
El netavark
el paquete tiene un Recommends
en el aardvark-dns
paquete. El aardvark-dns
El paquete se instalará de forma predeterminada con Netavark, pero Netavark funcionará sin él.
Listado de dependencias agrupadas
Si necesita enumerar las dependencias agrupadas en sus fuentes de empaquetado, puede ejecutar el cargo tree
comando en la fuente ascendente. Por ejemplo, la fuente de empaquetado de Fedora usa:
$ cargo tree --prefix none | \
awk '{print "Provides: bundled(crate("$1")) = "$2}' | \
sort | uniq
Para saber más
Espero que estas actualizaciones te hayan resultado útiles. Si tiene alguna pregunta, siéntase libre de abrir una discusión en GitHub, o comuníquese conmigo o con los otros mantenedores de Podman a través de Slack, IRC, Matrx o Discord. Mejor aún, ¡nos encantaría que te unas a nuestra comunidad como colaborador!