Lo que los usuarios y empaquetadores de Linux necesitan saber sobre Podman 4.0 en Fedora
Las nuevas funciones de Podman ofrecen un mejor soporte para contenedores y un rendimiento mejorado.
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 Container Networking Interface (CNI).
Netavark es una herramienta basada en Rust para configurar redes para contenedores de Linux que sirve como reemplazo de los complementos 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 paquete de 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 nuevas instalaciones de Podman 4.0.
En Fedora 36 y versiones 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 desde una versión anterior a la 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ás ansioso por probarlo, puedes usar un repositorio 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"
en la sección [network]
de sus contenedores . .conf
, normalmente ubicado en /usr/share/containers/containers.conf
.
Probando la última versión de desarrollo
Si desea probar el último código ascendente inédito, pruebe el podman-next
Copr:
$ sudo dnf copr enable rhcontainerbot/podman-next
$ sudo dnf install podman
PRECAUCIÓN: podman-next
Copr proporciona las fuentes inéditas más recientes 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 empaquetado 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 el paquete containers-common
, que permite un único punto 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 garantiza que:
- Las nuevas instalaciones de Podman siempre instalarán Netavark de forma predeterminada.
- El paquete
containernetworking-plugins
no entrará en conflicto con Netavark y los usuarios pueden instalarlos juntos.
Listado de dependencias empaquetadas
Si necesita enumerar las dependencias incluidas en sus fuentes de empaquetado, puede procesar el archivo go.mod
en la fuente ascendente. Por ejemplo, la fuente de empaquetado de Fedora utiliza:
$ 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 suministradas 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 inicial del paquete. Como resultado, Netavark y Aardvark-dns se crean utilizando las dependencias suministradas anteriormente, que se encuentran en el subdirectorio vendor
.
El binario netavark se instala en /usr/libexec/podman/netavark
, mientras que el binario aardvark-dns se instala en /usr/libexec/podman/aardvark-dns
.
El paquete netavark
tiene un Recomendado
en el paquete aardvark-dns
. El paquete aardvark-dns
se instalará de forma predeterminada con Netavark, pero Netavark funcionará sin él.
Listado de dependencias empaquetadas
Si necesita enumerar las dependencias incluidas en sus fuentes de empaquetado, puede ejecutar el comando cargo tree
en la fuente ascendente. Por ejemplo, la fuente de empaquetado de Fedora utiliza:
$ cargo tree --prefix none | \
awk '{print "Provides: bundled(crate("$1")) = "$2}' | \
sort | uniq
Aprender más
Espero que estas actualizaciones te hayan resultado útiles. Si tiene alguna pregunta, no dude en abrir una discusión en GitHub o comunicarse conmigo o con los demás mantenedores de Podman a través de Slack, IRC, Matrx o Discord. Mejor aún, ¡nos encantaría que te unieras a nuestra comunidad como colaborador!