Aller au contenu
Conteneurs & Orchestration medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Bilan du chapitre : construire une application Kubernetes

10 min de lecture

logo kubernetes

Vous avez maintenant parcouru les ressources pour construire une application Kubernetes. C’est une étape importante, car tout le reste repose sur ces briques : déployer une application stateless ou stateful, l’exposer sur le réseau, gérer sa configuration, protéger ses données sensibles, exécuter des agents sur chaque nœud ou automatiser des traitements ponctuels.

Cette page ne remplace pas les guides détaillés. Elle sert à faire la synthèse, à remettre les concepts en perspective et à vous montrer où aller ensuite pour passer d’un usage basique de Kubernetes à des déploiements plus propres, plus fiables et plus proches de la production.

À ce stade, vous êtes capable de :

  • comprendre le rôle des principales ressources Kubernetes ;
  • distinguer les objets qui exécutent, exposent, configurent ou sécurisent une application ;
  • déployer une application stateless avec des Pods, des Services et des Deployments ;
  • déployer une application stateful avec des StatefulSets ;
  • exécuter un agent sur chaque nœud avec des DaemonSets ;
  • externaliser la configuration avec des ConfigMaps ;
  • stocker des données sensibles avec des Secrets ;
  • exécuter des tâches ponctuelles avec des Jobs et des tâches planifiées avec des CronJobs.
RessourceRôle principalQuand l’utiliser
NamespaceIsoler et organiser les ressourcesSéparer des environnements, des équipes ou des projets
PodExécuter un ou plusieurs conteneursComprendre l’unité d’exécution de base
ServiceFournir un point d’accès réseau stableConnecter ou exposer des Pods
ReplicaSetMaintenir un nombre donné de PodsPrincipalement via un Deployment
DeploymentGérer des Pods stateless dans la duréeDéploiement, mise à jour, rollback, scaling
StatefulSetGérer des Pods stateful avec identité stableBases de données, applications à état
DaemonSetExécuter un Pod sur chaque nœudAgents de logs, monitoring, réseau
ConfigMapFournir la configuration non sensibleParamètres applicatifs, fichiers de config
SecretFournir des données sensiblesMots de passe, clés API, certificats
JobExécuter une tâche jusqu’à complétionMigration, batch, import, export
CronJobPlanifier des JobsSauvegarde, purge, synchronisation régulière

Pris séparément, chaque objet Kubernetes a un rôle simple. En pratique, une application combine souvent plusieurs de ces ressources.

Une application Kubernetes simple repose souvent sur cette logique :

  1. un Namespace pour isoler l’environnement ;
  2. un Deployment pour créer et maintenir les Pods ;
  3. un Service pour exposer les Pods sur le réseau interne ;
  4. un ConfigMap pour injecter la configuration non sensible ;
  5. un Secret pour les identifiants et données sensibles ;
  6. éventuellement un Job pour une migration ou un traitement ponctuel ;
  7. éventuellement un CronJob pour une tâche récurrente.

Structure d'un Namespace Kubernetes avec ses ressources

  • Le Pod exécute réellement les conteneurs.
  • Le Deployment gère les Pods stateless sur la durée.
  • Le StatefulSet gère les Pods stateful avec des identités stables et du stockage persistant.
  • Le DaemonSet garantit qu’un Pod tourne sur chaque nœud éligible.
  • Le ReplicaSet est un mécanisme intermédiaire, souvent invisible pour l’utilisateur.
  • Le Service fournit une adresse stable vers les Pods.
  • Le ConfigMap et le Secret injectent ce dont l’application a besoin pour fonctionner.
  • Le Job et le CronJob couvrent les traitements qui ne tournent pas en continu.

Un Pod peut être créé seul, mais dans la majorité des cas applicatifs, vous utiliserez un Deployment pour éviter une gestion manuelle fragile.

On ne pointe pas une application vers l’IP d’un Pod. On passe par un Service, car les Pods sont éphémères.

Un Deployment ne gère pas directement chaque Pod. Il s’appuie sur un ReplicaSet, qui maintient le nombre souhaité de répliques.

Les deux servent à injecter des données dans les Pods, mais :

  • ConfigMap = configuration non sensible ;
  • Secret = données sensibles.
  • Job = une exécution ponctuelle jusqu’à complétion ;
  • CronJob = planification automatique de Jobs.

Un StatefulSet crée automatiquement un PVC (PersistentVolumeClaim) par Pod grâce à son volumeClaimTemplates. Chaque Pod conserve son volume même après un redémarrage.

Un DaemonSet s’assure qu’un Pod tourne sur chaque nœud éligible du cluster. Il est utilisé pour les agents système (logs, monitoring, réseau).

Quand on débute avec Kubernetes, certaines confusions reviennent très souvent.

1. Créer des Pods à la main pour une application durable

Section intitulée « 1. Créer des Pods à la main pour une application durable »

Un Pod seul est utile pour apprendre ou tester. Pour une application stateless, utilisez un Deployment.

Un Service fournit un point d’accès stable à des Pods. Un Ingress ajoute du routage HTTP/HTTPS au-dessus de Services.

Un ConfigMap n’est pas fait pour stocker des données sensibles. Utilisez un Secret.

4. Penser qu’un ReplicaSet remplace un Deployment

Section intitulée « 4. Penser qu’un ReplicaSet remplace un Deployment »

Le ReplicaSet maintient un nombre de Pods, mais ne gère pas correctement les mises à jour applicatives comme le fait un Deployment.

5. Oublier le comportement des mises à jour de ConfigMaps et Secrets

Section intitulée « 5. Oublier le comportement des mises à jour de ConfigMaps et Secrets »
  • les variables d’environnement ne se mettent pas à jour automatiquement ;
  • les volumes se propagent avec délai ;
  • subPath ne se rafraîchit pas automatiquement.

Une tâche ponctuelle ou planifiée doit aller dans un Job ou un CronJob, pas dans un Deployment.

7. Utiliser un Deployment pour une base de données

Section intitulée « 7. Utiliser un Deployment pour une base de données »

Une base de données a besoin d’une identité stable et d’un stockage persistant. Utilisez un StatefulSet, pas un Deployment.

8. Confondre DaemonSet et Deployment avec nodeSelector

Section intitulée « 8. Confondre DaemonSet et Deployment avec nodeSelector »

Un DaemonSet garantit un Pod par nœud éligible. Un Deployment avec nodeSelector peut créer zéro ou plusieurs Pods par nœud selon les répliques.

Si vous deviez refaire ce chapitre avec du recul, voici l’ordre le plus logique :

  1. Namespaces — Pour comprendre comment organiser les ressources dans le cluster.

  2. Pods — Pour identifier l’unité d’exécution de base.

  3. Services — Pour relier et exposer les Pods de manière stable.

  4. Deployments — Pour déployer une application stateless de façon exploitable.

  5. ReplicaSets — Pour comprendre le mécanisme utilisé par les Deployments.

  6. ConfigMaps et Secrets — Pour séparer configuration et données sensibles du code applicatif.

  7. StatefulSets — Pour comprendre les workloads avec état et stockage persistant.

  8. DaemonSets — Pour exécuter des agents sur chaque nœud du cluster.

  9. Jobs et CronJobs — Pour couvrir les traitements ponctuels et planifiés.

Vous pouvez maintenant vérifier que les notions essentielles sont bien acquises.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

25 questions
15 min.
80% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

La théorie seule ne suffit pas. Pour ancrer les concepts durablement, passez par les travaux pratiques disponibles dans le dépôt GitHub associé.

Vous connaissez maintenant les objets fondamentaux de Kubernetes. La prochaine étape consiste à apprendre à les utiliser de manière plus propre, plus fiable et plus proche d’un contexte de production.

La suite du parcours peut se résumer en cinq axes :

  • écrire de meilleurs manifests pour produire des déploiements plus lisibles et maintenables ;
  • fiabiliser les applications avec les probes, les ressources et le scaling ;
  • gérer le réseau et l’exposition avec les Services, l’Ingress et les politiques réseau ;
  • maîtriser le stockage et les workloads avancés pour les applications stateful ou spécialisées ;
  • sécuriser le cluster et les workloads avec RBAC, Secrets et politiques de sécurité.

Les ressources de base de Kubernetes forment un socle cohérent : les Pods exécutent, les Services exposent, les Deployments pilotent, les ConfigMaps configurent, les Secrets protègent, et les Jobs automatisent des traitements ciblés.

Si ces concepts sont clairs pour vous, vous êtes prêt à passer à l’étape suivante : écrire de meilleurs manifests et construire des déploiements plus robustes.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn