4.19. Conteneurs

Le nouveau rôle de système podman RHEL est maintenant disponible

À partir de Podman 4.2, vous pouvez utiliser le rôle de système podman pour gérer la configuration de Podman, les conteneurs et les services systemd qui exécutent les conteneurs Podman.

Jira:RHELPLAN-118705

Podman prend désormais en charge les événements pour l'audit

À partir de Podman v4.4, vous pouvez rassembler toutes les informations pertinentes sur un conteneur directement à partir d'un seul événement et de l'entrée journald. Pour activer l'audit de Podman, modifiez le fichier de configuration container.conf et ajoutez l'option events_container_create_inspect_data=true à la section [engine]. Les données sont au format JSON, le même que celui de la commande podman container inspect. Pour plus d'informations, voir Comment utiliser les nouveaux événements de conteneurs et les fonctionnalités d'audit dans Podman 4.4.

Jira:RHELPLAN-136602

Le méta-paquet container-tools a été mis à jour

Le méta-paquet RPM container-tools, qui contient les outils Podman, Buildah, Skopeo, crun et runc, est désormais disponible. Cette mise à jour applique une série de corrections de bogues et d'améliorations par rapport à la version précédente.

Les changements notables dans Podman v4.4 sont les suivants :

  • Présenter Quadlet, un nouveau générateur de systèmes qui permet de créer et de maintenir facilement des services systemd à l'aide de Podman.
  • Une nouvelle commande, podman network update, a été ajoutée, qui met à jour les réseaux pour les conteneurs et les pods.
  • Une nouvelle commande, podman buildx version, a été ajoutée, qui indique la version de buildah.
  • Les conteneurs peuvent désormais avoir des contrôles de santé au démarrage, ce qui permet d'exécuter une commande pour s'assurer que le conteneur est complètement démarré avant que le contrôle de santé normal ne soit activé.
  • Prise en charge de la sélection d'un serveur DNS personnalisé à l'aide de la commande podman --dns.
  • La création et la vérification des signatures sigstore à l'aide de Fulcio et Rekor sont désormais disponibles.
  • Amélioration de la compatibilité avec Docker (nouvelles options et alias).
  • Amélioration de l'intégration Kubernetes de Podman - les commandes podman kube generate et podman kube play sont maintenant disponibles et remplacent les commandes podman generate kube et podman play kube. Les commandes podman generate kube et podman play kube sont toujours disponibles mais il est recommandé d'utiliser les nouvelles commandes podman kube.
  • Les pods gérés par Systemd et créés par la commande podman kube play s'intègrent désormais à sd-notify, en utilisant l'annotation io.containers.sdnotify (ou io.containers.sdnotify/$name pour des conteneurs spécifiques).
  • Les pods gérés par Systemd et créés par podman kube play peuvent maintenant être mis à jour automatiquement, en utilisant l'annotation io.containers.auto-update (ou io.containers.auto-update/$name pour des conteneurs spécifiques).

Podman a été mis à jour vers la version 4.4. Pour plus d'informations sur les changements notables, voir les notes de version en amont.

Jira:RHELPLAN-136607

Aardvark et Netavark prennent désormais en charge la sélection de serveurs DNS personnalisés

Les piles réseau Aardvark et Netavark prennent désormais en charge la sélection d'un serveur DNS personnalisé pour les conteneurs au lieu des serveurs DNS par défaut de l'hôte. Vous disposez de deux options pour spécifier le serveur DNS personnalisé :

  • Ajouter le champ dns_servers dans le fichier de configuration containers.conf.
  • Utilisez la nouvelle option --dns Podman pour spécifier l'adresse IP du serveur DNS.

L'option --dns remplace les valeurs du fichier container.conf.

Jira:RHELPLAN-138024

Skopeo permet désormais de générer des paires de clés sigstore

Vous pouvez utiliser la commande skopeo generate-sigstore-key pour générer une paire de clés publiques/privées Sigstore. Pour plus d'informations, voir la page de manuel skopeo-generate-sigstore-key.

Jira:RHELPLAN-151481

La boîte à outils est désormais disponible

Avec l'utilitaire toolbox, vous pouvez utiliser l'environnement de ligne de commande conteneurisé sans installer les outils de dépannage directement sur votre système. Toolbox s'appuie sur Podman et d'autres technologies de conteneurs standard de l'OCI. Pour plus d'informations, voir toolbx.

Jira:RHELPLAN-150266

Les images des conteneurs ont désormais une étiquette à deux chiffres

Dans RHEL 9.0 et RHEL 9.1, les images de conteneurs avaient une étiquette à trois chiffres. À partir de RHEL 9.2, les images de conteneurs ont désormais une étiquette à deux chiffres.

Jira:RHELPLAN-147982

Il est possible d'utiliser plusieurs clés GPG de confiance pour signer les images

Le fichier /etc/containers/policy.json prend en charge un nouveau champ keyPaths qui accepte une liste de fichiers contenant les clés de confiance. De ce fait, les images de conteneurs signées avec les clés GPG General Availability et Beta de Red Hat sont désormais acceptées dans la configuration par défaut.

Par exemple :

"registry.redhat.io": [
        {
            "type": "signedBy",
            "keyType": "GPGKeys",
            "keyPaths": ["/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release", "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta"]
        }
]

Jira:RHELPLAN-129327

Podman prend désormais en charge les crochets de pré-exécution

Les scripts d'extension appartenant à la racine et situés dans les répertoires /usr/libexec/podman/pre-exec-hooks et /etc/containers/pre-exec-hooks définissent un contrôle fin sur les opérations du conteneur, notamment en bloquant les actions non autorisées.

Le fichier /etc/containers/podman_preexec_hooks.txt doit être créé par un administrateur et peut être vide. Si /etc/containers/podman_preexec_hooks.txt n'existe pas, les scripts d'extension ne seront pas exécutés. Si tous les scripts du plugin renvoient une valeur nulle, la commande podman est exécutée, sinon la commande podman se termine avec le code de sortie hérité.

Red Hat recommande d'utiliser la convention d'appellation suivante pour exécuter les scripts dans l'ordre correct : DDD-plugin_name.lang, par exemple 010-check-group.py. Notez que les scripts du plugin sont valides au moment de la création. Les conteneurs créés avant les scripts de plugins ne sont pas affectés.

Bugzilla:2119200

Les signatures sigstore sont maintenant disponibles

À partir de Podman 4.2, vous pouvez utiliser le format sigstore pour les signatures d'images de conteneurs. Les signatures sigstore sont stockées dans le registre des conteneurs avec l'image du conteneur, sans qu'il soit nécessaire d'avoir un serveur de signatures distinct pour stocker les signatures des images.

Jira:RHELPLAN-74672

La boîte à outils permet de créer des conteneurs RHEL 9

Auparavant, l'utilitaire Toolbox ne prenait en charge que les images RHEL UBI 8. Avec cette version, Toolbox prend désormais également en charge RHEL UBI 9. Par conséquent, vous pouvez créer un conteneur Toolbox basé sur RHEL 8 ou 9.

La commande suivante crée un conteneur RHEL basé sur la même version de RHEL que votre système hôte :

$ toolbox create

Vous pouvez également créer un conteneur avec une version spécifique de RHEL. Par exemple, pour créer un conteneur basé sur RHEL 9.2, utilisez la commande suivante :

$ toolbox create --distro rhel --release 9.2

Bugzilla:2163752

Nouveau paquet : passt

Cette mise à jour ajoute le paquet passt, qui permet d'utiliser le réseau sans racine pasta pour les conteneurs.

Par rapport à la connexion Slirp, qui est actuellement utilisée par défaut par Podman pour les réseaux non privilégiés, pasta apporte les améliorations suivantes :

  • Amélioration du débit et meilleure prise en charge de l'IPv6, y compris la prise en charge du protocole NDP (Neighbor Discovery Protocol) et du protocole DHCPv6
  • Possibilité de configurer le transfert de ports TCP et UDP sur IPv6

Pour utiliser pasta afin de connecter un conteneur Podman, utilisez l'option de ligne de commande --network pasta.

Bugzilla:2209419