Kubernetes apparaît dans beaucoup d’offres d’emploi et fait peur à beaucoup de développeurs. La bonne nouvelle : en tant que développeur (pas DevOps), vous n’avez pas besoin de gérer un cluster Kubernetes — mais vous devez comprendre ce que c’est, pourquoi les équipes l’utilisent, et comment interagir avec un cluster existant. Ce guide vous donne exactement ça.
Kubernetes — le problème qu’il résout
Docker Compose gère plusieurs containers sur une seule machine. Kubernetes (K8s) orchestre des containers sur un cluster de plusieurs machines. Il résout des problèmes qui n’existent pas avec une seule machine :
- Haute disponibilité : si un serveur tombe, les containers redémarrent sur un autre
- Scaling automatique : si le trafic augmente, K8s lance plus d’instances automatiquement
- Rolling deployments : déployer une nouvelle version sans downtime
- Gestion des ressources : limiter CPU/mémoire par service pour éviter qu’un service affame les autres
Quand Kubernetes n’est pas nécessaire : la plupart des projets. Un VPS bien configuré avec Docker Compose gère largement les besoins d’une startup jusqu’à plusieurs milliers d’utilisateurs actifs.
Les concepts clés
Pod
L’unité de base de Kubernetes. Un Pod contient un ou plusieurs containers qui partagent le même réseau et stockage. En pratique : un Pod = un container applicatif (+ éventuellement des sidecars comme un agent de logs).
Deployment
Décrit l’état souhaité : « je veux 3 réplicas de mon app, avec cette image Docker ». K8s s’assure que cet état est toujours respecté — si un Pod crash, il en recrée un.
Service
Expose un ensemble de Pods sous une adresse stable. Les Pods ont des IPs qui changent — le Service agit comme un load balancer interne avec une IP fixe.
Ingress
L’équivalent de Nginx — gère le routage HTTP entrant vers les Services selon les domaines et chemins.
Un déploiement Kubernetes basique
# deployment.yaml — déclarer l'état souhaité
apiVersion: apps/v1
kind: Deployment
metadata:
name: mon-app
spec:
replicas: 3 # 3 instances en parallèle
selector:
matchLabels:
app: mon-app
template:
metadata:
labels:
app: mon-app
spec:
containers:
- name: app
image: mon-registry/mon-app:v1.2.3
ports:
- containerPort: 3000
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: database-url
---
# service.yaml — exposer les Pods
apiVersion: v1
kind: Service
metadata:
name: mon-app-service
spec:
selector:
app: mon-app
ports:
- port: 80
targetPort: 3000
Les commandes kubectl essentielles
# Appliquer une configuration
kubectl apply -f deployment.yaml
# Voir les Pods en cours
kubectl get pods
kubectl get pods -n mon-namespace # dans un namespace spécifique
# Voir les logs d'un Pod
kubectl logs mon-app-abc123
kubectl logs -f mon-app-abc123 # suivre en temps réel
kubectl logs -l app=mon-app # tous les Pods avec ce label
# Entrer dans un Pod
kubectl exec -it mon-app-abc123 -- sh
# Voir les détails d'un Pod (utile pour diagnostiquer)
kubectl describe pod mon-app-abc123
# Voir les déploiements
kubectl get deployments
kubectl rollout status deployment/mon-app
# Rollback si problème
kubectl rollout undo deployment/mon-app
# Scaler manuellement
kubectl scale deployment mon-app --replicas=5
Kubernetes managé — ne pas gérer le cluster soi-même
Gérer un cluster K8s soi-même est complexe et chronophage. En 2026, utilisez un service managé :
- AWS EKS — Elastic Kubernetes Service
- Google GKE — le plus mature, interface excellente
- Azure AKS — bien intégré dans l’écosystème Microsoft
- Scaleway Kapsule — alternative française, moins cher
Le cloud provider gère le control plane (les serveurs qui orchestrent) — vous gérez seulement vos workloads.
Ce que vous devez savoir en entretien
Pour un poste développeur avec « Kubernetes » dans la fiche : comprendre Pod/Deployment/Service/Ingress, savoir lire des manifests YAML, utiliser kubectl pour déboguer, et comprendre pourquoi K8s existe. Vous n’avez pas besoin de configurer le networking, le storage, ou les politiques de sécurité du cluster — c’est le rôle des SRE/DevOps.
Offres développeur avec compétences cloud et DevOps
Des postes pour développeurs qui comprennent l’infrastructure — de plus en plus différenciants sur le marché en 2026.
À lire aussi : Docker — Docker Compose — AWS, Azure, GCP