quickstart5 min de lecture

Premier déploiement sur Kubernetes en 30 minutes

SFEIR Institute

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émentMinimum requis
RAM4 Go disponibles
CPU2 cœurs
Disque20 Go libres
OSmacOS, 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 :

  1. ConfigMaps et Secrets : externaliser la configuration
  2. Volumes persistants : stocker des données
  3. Ingress : exposer via un nom de domaine
  4. 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 :

Déployez vos applications avec confiance. Contactez nos conseillers pour définir votre parcours de formation Kubernetes.