Devops

Gérez efficacement des conteneurs avec Podman

Objectifs de la formation

  • Comprendre l'architecture de Podman et ses différences avec Docker.
  • Maîtriser les commandes Podman pour la gestion des images, conteneurs, pods et volumes.
  • Savoir construire des images de conteneurs efficaces et sécurisées.
  • Déployer et gérer des conteneurs Podman en environnement local et sur AWS.
  • Comprendre et utiliser la notion de Pods avec Podman
  • Appliquer les meilleures pratiques pour une utilisation opérationnelle de Podman.


Programme de la formation

Introduction

  • Rappel des concepts fondamentaux de la conteneurisation.
  • Qu'est-ce que Podman ? Histoire et philosophie.
  • Architecture sans daemon : avantages (sécurité, simplicité, intégration).
  • Comparaison entre Podman et Docker : quelles différences ?
  • Qu'est-ce qui distingue Podman en termes de sécurité et de gestion ?

Travaux pratiques : Installation et configuration de Podman sous Linux (apt, dnf, pacman), Windows et macOS (présentation de Podman machine et de Podman Desktop). Configuration de base : containers.conf, registries.conf, storage.conf, Configuration de l'environnement Rootless (utilisateur non-root).

Gestion des conteneurs avec Podman

  • Création et gestion de conteneurs simples avec Podman.
  • Comment utiliser les commandes de Podman pour lancer, arrêter, et supprimer des conteneurs ((podman stop, podman start, podman rm).
  • Exploration des logs et gestion des processus dans les conteneurs.
  • Sauvegarde et restauration de conteneurs avec Podman.

Travaux pratiques : création d'un conteneur simple. Les participants lanceront, arrêteront et supprimeront des conteneurs, tout en explorant les logs générés

Gestion des images et des registres

  • Recherche et téléchargement d'images (podman search, podman pull).
  • Listing et inspection des images (podman images, podman inspect).
  • Suppression d'images (podman rmi).
  • Construction d'images avec Podman et Buildah : Introduction au Dockerfile/Containerfile.
  • Meilleures pratiques pour la construction d'images (multi-stage builds, optimisations).

Travaux pratiques : Création d'un Dockerfile simple, construction d'une image personnalisée.

Gestion des Volumes

  • Types de volumes : bind mounts, named volumes.
  • Création et suppression de volumes nommés (podman volume create, podman volume rm).
  • Partage de données entre conteneurs.
  • Sauvegarde et restauration de données de volumes.

Travaux pratiques : Mise en place d'une base de données dans un conteneur avec persistance des données via un volume.

Gestion des Réseaux

  • Types de réseaux Podman : bridge par défaut, host, none.
  • Création de réseaux personnalisés (podman network create).
  • Attachement de conteneurs à des réseaux spécifiques.
  • DNS et découverte de services entre conteneurs sur le même réseau.

Travaux pratiques : Déployer une application multi-conteneur sur un réseau Podman personnalisé.

Les Pods

  • Qu'est-ce qu'un Pod dans Podman et pourquoi les utiliser ?
  • Création et gestion de Pods pour organiser les conteneurs.
  • Sécurisation des communications entre conteneurs dans un Pod.

Travaux pratiques : Créer un Pod avec deux conteneurs partageant le même réseau et volume.

Les plugins

  • Qu'est-ce qu'un plugin Podman
  • Les différents types de plugins
  • Network Plugins (CNI)
  • Volume Plugins (CSI)
  • Autres plugins

Travaux pratiques : installer et configurer des plugins CNI/CSI.

Intégration avec Systemd

  • Génération de services Systemd à partir de conteneurs et de Pods
  • Gestion des services Podman avec Systemd (démarrage automatique, supervision…)
  • Bonnes pratiques pour les déploiements persistants.

Travaux pratiques : Automatiser le démarrage d'un Pod via un service Systemd.

Sécurité avec Podman (vue d’ensemble)

  • Conteneurs Rootless : Approfondissement des mécanismes de sécurité.
  • SELinux et AppArmor : Rôles et configuration avec Podman.
  • Limitation des ressources (CPU, mémoire) : podman run --cpus, -memory.
  • Principes de moindre privilège pour les conteneurs.
  • Scanning de vulnérabilités des images (outils externes).

Gestion des Registres de Conteneurs

  • Authentification aux registres privés (podman login).
  • Utilisation des registres distants : push et pull d'images.
  • Comment sécuriser les connexions aux registres de conteneurs ?
  • Tagging et poussée d'images vers des registres (podman tag, podman push).
  • Présentation des registres AWS : ECR (Elastic Container Registry).

Travaux pratiques : Authentification à ECR, tagger et pousser une image Podman vers ECR.

Déploiement de Conteneurs Podman sur AWS

  • Stratégies de déploiement
    • AWS EC2 avec Podman : Exécution directe de Podman sur une instance EC2.
    • Utilisation d'images Podman avec ECS (Elastic Container Service).
    • Préparation de l'environnement EC2 (AMI, User Data, Security Groups).
  • Automatisation du déploiement avec des scripts Bash ou des outils IaC (Terraform, CloudFormation - concepts).

Travaux pratiques : Lancer une instance EC2 Linux, installer Podman, puis tirer et exécuter une image depuis ECR sur cette instance.

Please login to get access to the quiz
DevSecOps avec Kubenetes et les Microservices (Prev Lesson)
(Next Lesson) GitHub Copilot, accélérer et fiabiliser le développement de vos applications
Back to Devops