6 points par xguru 2025-02-28 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le mode image de Red Hat Enterprise Linux (RHEL) simplifie le processus de construction, de déploiement et de gestion de RHEL sous forme de conteneurs amorçables
  • Les développeurs, équipes d’exploitation et fournisseurs de solutions peuvent gérer les applications et le système d’exploitation sous-jacent avec les mêmes outils et technologies cloud native orientés conteneurs

Construire des conteneurs amorçables vs. des conteneurs applicatifs

  • Comme pour les conteneurs applicatifs classiques, il est possible de construire des conteneurs amorçables avec des technologies de conteneurs existantes telles que Podman, Docker ou buildkit
  • Les images peuvent être stockées dans des registres de conteneurs comme Quay.io, Docker Hub, GitHub Container Registry ou un registre de conteneurs interne
  • Les conteneurs amorçables constituent une évolution naturelle des technologies de conteneurs, en offrant des workflows entièrement natifs pour les conteneurs et une expérience utilisateur complète incluant l’ensemble du système d’exploitation et le noyau Linux

Utiliser un Containerfile

  • Un Containerfile (également appelé Dockerfile) contient toutes les informations nécessaires à la construction d’une image de conteneur, notamment l’image de base, les instructions d’installation des paquets logiciels et la copie de fichiers depuis un dépôt Git
  • Le workflow et les outils pour construire des conteneurs amorçables sont essentiellement les mêmes que pour les conteneurs applicatifs
  • Il existe toutefois quelques bonnes pratiques spécifiques à la construction de conteneurs amorçables

Bonnes pratiques de linting

  • Il est recommandé d’exécuter la commande bootc container lint comme dernière étape du Containerfile
  • Cette commande effectue plusieurs vérifications à l’intérieur de l’image de conteneur et génère une erreur en cas de problème
  • Par exemple, elle vérifie s’il y a plusieurs noyaux dans /usr/lib/modules, contrôle la syntaxe des fichiers dans /usr/lib/bootc/kargs.d et examine l’hygiène de /etc et /usr/etc

GitHub Actions et l’espace disque

  • Lors de la construction de conteneurs avec GitHub Actions, on peut rencontrer des problèmes d’espace disque en raison de la taille des images de conteneurs amorçables
  • Pour résoudre ces problèmes, il est possible d’ajouter au fichier de workflow une étape supprimant le répertoire /opt/hostedtoolcache afin de libérer de l’espace disque

Comprendre /var

  • /var est un répertoire destiné aux données et à l’état locaux de la machine, persistants et modifiables ; même pendant les mises à jour, le contenu de /var dans l’image de conteneur n’est pas modifié
  • Par conséquent, si une application écrit des données dans /var, il faut les déplacer vers un autre répertoire comme /usr/share afin d’éviter les problèmes liés aux montages en lecture seule

Utiliser la commande useradd

  • Si useradd est appelé dans un script de packaging, des dérives d’état peuvent survenir lorsque /etc/passwd est modifié localement
  • Pour éviter ces problèmes, on peut envisager la création dynamique d’utilisateurs avec l’option DynamicUser=yes de systemd
  • Toutefois, dans les cas complexes, passer à DynamicUser=yes peut être difficile ; dans ce cas, il est préférable d’utiliser systemd-sysusers pour créer les utilisateurs

Intégrer des conteneurs avec Quadlet

  • Exécuter des charges de travail conteneurisées dans systemd est une méthode simple mais puissante pour des déploiements fiables
  • Podman fournit un outil appelé Quadlet pour l’intégration avec systemd, permettant de gérer déclarativement des charges de travail conteneurisées
  • Quadlet s’intègre parfaitement au mode image et permet d’utiliser des images logiquement liées pour pré-récupérer les images de conteneurs applicatifs au démarrage

Résumé

  • L’utilisation du mode image entraîne un changement de paradigme dans la façon d’exploiter les hôtes RHEL
  • Il devient possible de construire, déployer et gérer le système d’exploitation avec des outils cloud native, tout en travaillant avec un OS immuable dont la majeure partie du système est montée en lecture seule

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.