Aller au contenu

GUIDE TECHNIQUE · KUBERNETES

Déployer une application sur Kubernetes

Déployer Nginx dans un namespace isolé, tester réellement la réponse HTTP via port-forward, contrôler la disponibilité puis supprimer les ressources de recette.

Niveau Débutant4 min de lecture— vuesKubernetes

L’ESSENTIEL EN BREF

Comment procéder ?

Déployer Nginx dans un namespace isolé, tester réellement la réponse HTTP via port-forward, contrôler la disponibilité puis supprimer les ressources de recette.

Résultat à atteindre : Contexte et RBAC contrôlés.

Avant de commencer : Cluster de test autorisé et contexte kubectl vérifié.

01 · CADRAGE

Ce que vous allez mettre en place

Déployer Nginx dans un namespace isolé, tester réellement la réponse HTTP via port-forward, contrôler la disponibilité puis supprimer les ressources de recette.

Pour qui : Administrateurs Kubernetes, équipes DevOps et SRE

Environnement et versions

Kubernetes stable avec kubectl compatible ; les images de laboratoire sont illustratives et doivent être validées avant usage réel.

Vérifiez la compatibilité avec votre environnement réel. Les versions ne sont jamais présumées identiques d’un tenant à l’autre.

02 · AVANT DE COMMENCER

Prérequis et points de contrôle

  • Cluster de test autorisé et contexte kubectl vérifié.
  • Droits de créer/supprimer un namespace de recette ; aucun workload client dans ce namespace.
  • Capacité à lire Pods, événements et logs après déploiement.

03 · VUE D’ENSEMBLE

Comprendre l’architecture et les flux

ARCHITECTURE TECHNIQUEComprendre la chaîne de bout en bout
01Contexte kubectl
02Manifest ou commande
03API Kubernetes
04Contrôleur
05Workload vérifié
Le contrôle doit couvrir la ressource Kubernetes et son comportement réel ; un manifeste accepté ne prouve pas seul la disponibilité.

04 · TUTORIEL

Procédure complète, étape par étape

Chaque étape explique l’action, sa raison, le contrôle attendu et les erreurs habituelles. Adaptez les exemples aux paramètres de votre propre environnement.

01

ÉTAPE 1 / 5

Identifier le contexte kubectl

Le contexte doit être contrôlé avant toute création.

  1. Lire le contexte actif et l'identité d'accès.
  2. Vérifier le droit de créer un namespace.
  3. Choisir un nom dédié à la recette.
Exemple techniqueÀ adapter à votre environnement
kubectl config current-context
kubectl auth can-i create namespaces
Ce qui se passe à cette étape
1kubectl
2Identifier le contexte kubectl
3Résultat du cluster

À vérifier : Le cluster et les droits autorisés sont connus.

Point de vigilance ADN : Un cluster partagé peut interdire les namespaces : demander un périmètre de recette.

02

ÉTAPE 2 / 5

Créer un namespace de recette

Un namespace isole les objets de l'exemple mais ne constitue pas à lui seul une barrière de sécurité.

  1. Créer adn-k8s-lab.
  2. Vérifier son statut.
  3. Utiliser -n pour toutes les autres commandes.
Exemple techniqueÀ adapter à votre environnement
kubectl create namespace adn-k8s-lab
kubectl get namespace adn-k8s-lab
Ce qui se passe à cette étape
1kubectl
2Créer un namespace de recette
3Résultat du cluster

À vérifier : Le namespace est Active.

Point de vigilance ADN : Ne réutilisez pas un namespace métier existant.

03

ÉTAPE 3 / 5

Déployer une image de test

Le Deployment contrôle le nombre de Pods et leur redémarrage.

  1. Créer un Deployment avec une image validée.
  2. Exposer un Service ClusterIP, sans LoadBalancer ni NodePort.
  3. Attendre le rollout.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-k8s-lab create deployment adn-web --image=nginx:stable-alpine
kubectl -n adn-k8s-lab expose deployment adn-web --port=80 --target-port=80 --type=ClusterIP
kubectl -n adn-k8s-lab rollout status deployment/adn-web
Ce qui se passe à cette étape
1kubectl
2Déployer une image de test
3Résultat du cluster

À vérifier : Deployment disponible et Service de type ClusterIP créé.

Point de vigilance ADN : Pour une reproduction à l'identique, remplacer stable-alpine par un digest contrôlé.

04

ÉTAPE 4 / 5

Contrôler le déploiement et le Service

Un statut Ready ne prouve pas à lui seul la réponse HTTP : tester le chemin utilisateur.

  1. Vérifier Pods et endpoints.
  2. Dans un terminal, ouvrir un port-forward vers le Service.
  3. Dans un autre terminal, demander la page nginx et constater un code HTTP 200.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-k8s-lab get pods,svc,endpoints
kubectl -n adn-k8s-lab port-forward svc/adn-web 18080:80
# Dans un SECOND terminal :
curl -i http://127.0.0.1:18080/
Ce qui se passe à cette étape
1kubectl
2Contrôler le déploiement et le Service
3Résultat du cluster

À vérifier : L'en-tête HTTP annonce 200 et la page Nginx s'affiche.

Point de vigilance ADN : Interrompre port-forward avec Ctrl+C ; ce test dépend de la connectivité à l'API Kubernetes.

05

ÉTAPE 5 / 5

Nettoyer le namespace après recette

La purge d'un namespace efface toutes ses ressources.

  1. Confirmer que le namespace ne contient que les objets créés.
  2. Supprimer le namespace de recette.
  3. Vérifier qu'il a disparu.
Exemple techniqueÀ adapter à votre environnement
kubectl -n adn-k8s-lab get all
# Seulement si ce namespace a été créé pour cette recette :
kubectl delete namespace adn-k8s-lab
Ce qui se passe à cette étape
1kubectl
2Nettoyer le namespace après recette
3Résultat du cluster

À vérifier : Aucune ressource de recette ne reste active.

Point de vigilance ADN : Ne jamais supprimer un namespace contenant les charges d'autres équipes.

SOURCES ET FIABILITÉ

Statut de validation du guide

Rédaction : ADN Consulting. Statut : procédure documentée, exécution en laboratoire non attestée.

Les exemples et versions indiqués doivent être vérifiés sur un environnement autorisé. Aucune validation individuelle par un consultant n’est revendiquée sans preuve.

Documentation officielle de référence

05 · RECETTE

Comment vérifier que tout fonctionne ?

Résultat attenduContrôles avant de considérer la procédure terminée
01

Contexte et RBAC contrôlés.

02

Pod Ready et Service ClusterIP présents.

03

Port-forward et curl HTTP 200 réussis.

04

Namespace de recette supprimé sans toucher d'autres workloads.

06 · DIAGNOSTIC

Problèmes fréquents et résolution

ImagePullBackOff

Cause probable : Image absente, accès registre ou tag incorrect

Que faire : Lire kubectl describe pod et les événements avant changement d'image.

CrashLoopBackOff

Cause probable : Conteneur instable ou configuration invalide

Que faire : Lire les logs --previous et livenessProbe ; corriger à la source.

Rollout bloqué

Cause probable : Pods non prêts ou capacité du cluster insuffisante

Que faire : Examiner rollout status, describe et quota du namespace.

Le conseil de l’expert ADN

Avant de généraliser cette configuration, validez-la sur un périmètre représentatif, documentez les critères de réussite et conservez une procédure de retour arrière. Une automatisation fiable se juge sur l’état final observé, les permissions maîtrisées et un retour arrière testé.

07 · QUESTIONS PRATIQUES

Questions fréquentes

Puis-je reprendre ces commandes en production ?

Non sans adaptation, revue de sécurité, approbation de changement et tests sur un environnement identique.

Pourquoi ne suffit-il pas d'appliquer le manifeste ?

Le contrôleur peut accepter l'objet alors que les Pods ne sont pas prêts ou que le service ne répond pas.

AUTRES TECHNOLOGIES

Guides complémentaires

Ce tutoriel s’inscrit dans une chaîne technique plus large. Retrouvez les méthodes associées aux technologies voisines.

Tous les guides Kubernetes

Pour aller plus loin