DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesDécouvrir Kubernetes : pods, services et kubectl04 - Organiser avec les Namespaces et les Labels

Détails

  • 15 minutes
  • Débutant

Objectifs

  • Créer et utiliser des namespaces pour isoler les ressources
  • Ajouter et utiliser des labels sur les pods et nodes
  • Filtrer les ressources avec les label selectors (-l)
  • Explorer le namespace kube-system
Module Découvrir Kubernetes : pods, services et kubectl

Exercice 04 : Organiser avec les Namespaces et les Labels

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Créer des namespaces pour isoler les environnements
  • ✅ Déployer des ressources dans un namespace spécifique (-n)
  • ✅ Ajouter des labels et filtrer avec -l
  • ✅ Lister les pods de tous les namespaces (--all-namespaces)

Durée estimée : 15 minutes

Difficulté : ⭐☆☆☆☆ (Débutant)

Prérequis : minikube démarré, exercices 01-03 terminés


📖 Contexte

Les namespaces permettent de diviser un cluster en environnements virtuels isolés (dev, staging, prod). Les labels sont des paires clé/valeur libres qui permettent d'organiser et de sélectionner les ressources. Ces deux mécanismes sont complémentaires et incontournables en production.


📋 Énoncé

Vous allez créer deux namespaces (dev et staging), y déployer des pods avec des labels, puis pratiquer la sélection par labels et le filtrage par namespace.

Résultat attendu :

  • Deux namespaces dev et staging avec des pods déployés
  • Maîtrise du filtrage par label et par namespace

🧭 Déroulement de l'exercice

Tâche 1 : Créer des namespaces

Créez deux namespaces : dev et staging, puis listez tous les namespaces existants.

Indice : kubectl create namespace dev ou via un manifest YAML avec kind: Namespace

Vérification : kubectl get namespaces affiche dev et staging avec le statut Active.


Tâche 2 : Déployer des pods dans les namespaces

Créez un pod nginx dans le namespace dev et un pod apache dans le namespace staging.

Indice : Utilisez le champ metadata.namespace dans le YAML, ou l'option -n dev avec kubectl apply.

Vérification : kubectl get pods -n dev affiche le pod nginx, kubectl get pods -n staging le pod apache.


Tâche 3 : Ajouter des labels

Ajoutez le label tier=frontend au pod nginx dans dev et tier=backend au pod apache dans staging.

Indice : kubectl label pod <nom> tier=frontend -n dev

Vérification : kubectl get pods --show-labels -n dev affiche les labels mis à jour.


Tâche 4 : Filtrer par label selector

Listez tous les pods de tous les namespaces qui ont le label tier=frontend.

Indice : kubectl get pods -A -l tier=frontend

Vérification : Seul le pod nginx de dev apparaît.


Tâche 5 : Explorer kube-system

Listez les pods du namespace kube-system et identifiez les composants du control plane (kube-apiserver, etcd, coredns).

Indice : kubectl get pods -n kube-system

Vérification : Vous identifiez au moins 4 composants système.


🗂️ Mini-Projet : Environnements isolés

Simulez une organisation multi-environnement avec les namespaces dev, staging et prod. Chaque namespace doit avoir un pod avec des labels cohérents.

yaml
# pods-multi-env.yaml
apiVersion: v1
kind: Pod
metadata:
  name: app-frontend
  namespace: dev
  labels:
    app: monapp
    tier: frontend
    env: dev
    version: "1.0"
spec:
  containers:
    - name: nginx
      image: nginx:1.25
---
apiVersion: v1
kind: Pod
metadata:
  name: app-frontend
  namespace: staging
  labels:
    app: monapp
    tier: frontend
    env: staging
    version: "1.1"
spec:
  containers:
    - name: nginx
      image: nginx:1.25

Checkpoints :

  • kubectl get namespaces liste dev, staging et prod
  • kubectl get pods -A -l app=monapp affiche les pods des deux namespaces
  • kubectl get pods -A -l env=dev retourne uniquement les pods de dev
  • kubectl get pods -A --show-labels affiche tous les labels
  • kubectl delete namespace dev staging prod supprime proprement les namespaces et leurs ressources

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Créer des namespaces
  • Tâche 2 : Déployer des pods dans les namespaces
  • Tâche 3 : Ajouter des labels
  • Tâche 4 : Filtrer par label selector
  • Tâche 5 : Explorer kube-system
  • 🗂️ Mini-Projet : Environnements isolés