Points clés
- ✓Minikube permet de déployer Kubernetes localement avec 4 Go RAM et 2 cœurs CPU minimum
- ✓Un Deployment nginx exposé via Service NodePort est accessible en 30 minutes
- ✓'Les concepts essentiels couverts: Pods, Deployments, Services'
Cette formation premier déploiement sur kubernetes en 30 minutes vous guide pas à pas pour déployer votre première application conteneurisée. Du cluster local à l'application accessible via navigateur, ce tutoriel couvre les concepts essentiels : Pods, Deployments, Services. Vous allez réaliser votre premier déploiement Kubernetes sans prérequis complexes.
TL;DR : Installez Minikube, créez un Deployment nginx, exposez-le via un Service NodePort. En 30 minutes, vous aurez une application fonctionnelle et les bases pour aller plus loin.
Ces fondamentaux sont au cœur de la formation Kubernetes, les fondamentaux.
Prérequis : ce dont vous avez besoin pour la formation premier déploiement sur kubernetes en 30 minutes
Matériel et logiciels
| Élément | Minimum requis |
|---|---|
| RAM | 4 Go disponibles |
| CPU | 2 cœurs |
| Disque | 20 Go libres |
| OS | macOS, Windows 10+, Linux |
Installer les outils
Étape 1 : Installer Docker Desktop (macOS/Windows) ou Docker Engine (Linux)
# Vérification de l'installation Docker
docker --version
# Docker version 27.5.0, build ...
Étape 2 : Installer Minikube
# macOS avec Homebrew
brew install minikube
# Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Étape 3 : Installer kubectl
# macOS
brew install kubectl
# Linux
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
À retenir : Minikube crée un cluster Kubernetes mono-node local. Idéal pour apprendre sans infrastructure cloud.
Comme le rappelle The Enterprisers Project : « Anybody can learn Kubernetes. With abundant documentation and development tools available online, teaching yourself Kubernetes is very much within reach » (The Enterprisers Project).
Démarrer votre cluster Kubernetes local
Lancer Minikube
minikube start --driver=docker --memory=4096 --cpus=2
# Sortie attendue
# 😄 minikube v1.34.0 on Darwin
# ✨ Using the docker driver
# 🔥 Creating docker container
# 🐳 Kubernetes v1.31.0 on Docker 27.2.0
# ✅ Done! kubectl is now configured
Vérifier le cluster
kubectl cluster-info
# Kubernetes control plane is running at https://127.0.0.1:55000
kubectl get nodes
# NAME STATUS ROLES AGE VERSION
# minikube Ready control-plane 1m v1.31.0
Avec 82% des utilisateurs de conteneurs exécutant Kubernetes en production (CNCF Annual Survey 2025), maîtriser ces commandes devient essentiel.
Pour aller plus loin dans les tutoriels et guides pratiques Kubernetes, consultez notre hub dédié.
Créer votre premier Deployment
Qu'est-ce qu'un Deployment ?
Un Deployment est une ressource Kubernetes qui gère un ensemble de Pods identiques. Il assure que le nombre souhaité de réplicas tourne en permanence, gère les mises à jour et les rollbacks.
Déployer nginx
kubectl create deployment nginx-demo --image=nginx:1.27 --replicas=2
# deployment.apps/nginx-demo created
Vérifier le Deployment
kubectl get deployments
# NAME READY UP-TO-DATE AVAILABLE AGE
# nginx-demo 2/2 2 2 30s
kubectl get pods
# NAME READY STATUS RESTARTS AGE
# nginx-demo-5d4f6b7c9-abc12 1/1 Running 0 45s
# nginx-demo-5d4f6b7c9-xyz34 1/1 Running 0 45s
À retenir : Kubernetes maintient automatiquement 2 réplicas. Si un Pod échoue, un nouveau est créé immédiatement.
Consultez notre guide sur le Rolling Update Kubernetes pour comprendre les mises à jour sans interruption.
Exposer votre application avec un Service
Qu'est-ce qu'un Service ?
Un Service est une abstraction qui expose un ensemble de Pods via une adresse IP stable. Les Pods sont éphémères ; le Service offre un point d'accès permanent.
Créer un Service NodePort
kubectl expose deployment nginx-demo --type=NodePort --port=80
# service/nginx-demo exposed
Vérifier le Service
kubectl get services
# NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
# kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10m
# nginx-demo NodePort 10.96.123.45 <none> 80:31234/TCP 1m
Accéder à l'application
minikube service nginx-demo --url
# http://192.168.49.2:31234
Ouvrez l'URL dans votre navigateur. Vous verrez la page d'accueil nginx.
Comprendre les ressources créées
Architecture de votre déploiement
┌─────────────────────────────────────────────┐
│ Service │
│ (NodePort:31234) │
└─────────────────┬───────────────────────────┘
│ Load balancing
┌─────────┴─────────┐
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Pod 1 │ │ Pod 2 │
│ nginx:1.27 │ │ nginx:1.27 │
└───────────────┘ └───────────────┘
│ │
└─────────┬─────────┘
▼
┌───────────────┐
│ Deployment │
│ replicas: 2 │
└───────────────┘
Inspecter les ressources en détail
kubectl describe deployment nginx-demo
# Name: nginx-demo
# Selector: app=nginx-demo
# Replicas: 2 desired | 2 updated | 2 available
# StrategyType: RollingUpdate
Pour une vision plus complète, le hub Déploiement et mise en production Kubernetes propose des guides avancés.
Modifier et mettre à jour votre déploiement
Scaler le nombre de réplicas
kubectl scale deployment nginx-demo --replicas=4
# deployment.apps/nginx-demo scaled
kubectl get pods
# 4 pods maintenant en Running
Mettre à jour l'image
kubectl set image deployment/nginx-demo nginx=nginx:1.27.1
# deployment.apps/nginx-demo image updated
kubectl rollout status deployment/nginx-demo
# Waiting for deployment "nginx-demo" rollout to finish: 2 out of 4 new replicas...
# deployment "nginx-demo" successfully rolled out
À retenir : Kubernetes effectue un rolling update : les nouveaux Pods démarrent avant que les anciens ne s'arrêtent. Zéro interruption de service.
Approfondissez avec notre guide sur le Canary Deployment sur Kubernetes.
Utiliser un fichier manifeste YAML
Pourquoi les manifestes ?
Les commandes kubectl create conviennent pour l'apprentissage. En production, les manifestes YAML permettent :
- Versioning dans Git
- Revue de code
- Reproductibilité
Créer un manifeste complet
# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-prod
labels:
app: nginx
environment: production
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.27
ports:
- containerPort: 80
resources:
requests:
memory: "64Mi"
cpu: "100m"
limits:
memory: "128Mi"
cpu: "200m"
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
type: NodePort
Appliquer le manifeste
kubectl apply -f nginx-deployment.yaml
# deployment.apps/nginx-prod created
# service/nginx-service created
Pour maîtriser GitOps, consultez notre guide GitOps et Kubernetes : principes et mise en œuvre.
Nettoyer les ressources
# Supprimer les ressources créées
kubectl delete deployment nginx-demo nginx-prod
kubectl delete service nginx-demo nginx-service
# Arrêter Minikube
minikube stop
# Supprimer le cluster (optionnel)
minikube delete
Prochaines étapes après votre premier déploiement
Vous avez terminé la formation premier déploiement sur kubernetes en 30 minutes. Voici comment progresser :
- ConfigMaps et Secrets : externaliser la configuration
- Volumes persistants : stocker des données
- Ingress : exposer via un nom de domaine
- CI/CD : automatiser les déploiements via un pipeline CI/CD pour Kubernetes
Consultez le retour d'expérience sur la migration vers Kubernetes en production pour comprendre les défis du passage à l'échelle.
Comme le conseille TealHQ : « Don't let your knowledge remain theoretical - set up a real Kubernetes environment to solidify your skills » (TealHQ Kubernetes DevOps Guide).
Contactez nos conseillers pour un accompagnement personnalisé.
Allez plus loin avec les formations SFEIR
Ce tutoriel vous a donné les bases du déploiement Kubernetes. Pour aller plus loin, SFEIR propose :
- Kubernetes, les fondamentaux : 1 journée pour découvrir l'orchestration de conteneurs
- LFS458 Administration Kubernetes : 4 jours pour préparer la certification CKA
- LFD459 Kubernetes pour les développeurs d'applications : 3 jours pour maîtriser le développement cloud-native
Déployez vos applications avec confiance. Contactez nos conseillers pour définir votre parcours de formation Kubernetes.