Les entretiens Kubernetes passent du vocabulaire (pod, deployment, service) aux opérations (que se passe-t-il quand un pod plante, comment déboguer un déploiement bloqué) et à la conception (comment exécuter une application en toute sécurité). Les recruteurs aiment les commandes et les symptômes, alors entraînez-vous à dire ce que vous taperiez réellement et ce que vous vous attendriez à voir.
Voici 26 questions avec réponses, regroupées par thème. Remplacez les exemples par votre propre expérience de cluster quand c'est possible.
Architecture et objets
1. Qu'est-ce que Kubernetes ?
Un système open source pour exécuter et gérer des conteneurs sur un cluster de machines. Vous déclarez l'état souhaité, par exemple trois copies d'un service, et Kubernetes travaille en continu pour s'y conformer.
2. Quels sont les principaux composants d'un cluster ?
Le plan de contrôle comprend le serveur d'API (la porte d'entrée), etcd (le stockage de données), le scheduler (qui choisit un nœud pour chaque pod) et le controller manager (qui exécute les boucles de contrôle). Chaque nœud worker exécute le kubelet (qui lance les pods), un runtime de conteneurs et kube-proxy (qui gère le réseau des services).
3. Qu'est-ce qu'un pod ?
La plus petite unité déployable. Il contient un ou plusieurs conteneurs qui partagent un namespace réseau et du stockage. La plupart des pods ont un conteneur principal, et les conteneurs supplémentaires sont des sidecars ou des conteneurs d'init.
4. Quelle est la différence entre un Deployment, un ReplicaSet et un StatefulSet ?
Un ReplicaSet maintient un nombre de pods identiques en fonctionnement. Un Deployment gère les ReplicaSets et vous offre les mises à jour progressives et les rollbacks. Un StatefulSet est destiné aux applications avec état : les pods obtiennent des noms stables, du stockage stable, et un démarrage et un arrêt ordonnés.
5. Qu'est-ce qu'un DaemonSet ? Un Job ? Un CronJob ?
Un DaemonSet exécute un pod par nœud, pour des agents comme les collecteurs de logs. Un Job exécute une tâche jusqu'à son achèvement. Un CronJob exécute des Jobs selon un planning.
6. Que sont les labels, les selectors et les annotations ?
Les labels sont des paires clé-valeur attachées aux objets, et les selectors sélectionnent des objets par label. Les Services trouvent les pods de cette façon, et les Deployments trouvent leurs ReplicaSets. Les annotations contiennent aussi des données clé-valeur, mais elles servent de métadonnées non identifiantes utilisées par les outils.
7. Qu'est-ce qu'un namespace ?
Un moyen de diviser un cluster en groupes virtuels, généralement par équipe ou par environnement. Les namespaces délimitent les noms, et vous pouvez appliquer des quotas de ressources et des règles d'accès par namespace. Ce n'est pas une frontière de sécurité solide en soi.
Réseau
8. Quels sont les types de Service ?
| Type | Ce qu'il fait |
|---|---|
| ClusterIP | Une IP interne stable, accessible uniquement depuis l'intérieur du cluster (par défaut) |
| NodePort | Ouvre un port sur chaque nœud |
| LoadBalancer | Crée un load balancer externe, via le fournisseur cloud |
| ExternalName | Associe le service à un nom DNS |
9. Qu'est-ce qu'un Ingress ?
Un objet qui route le trafic HTTP et HTTPS externe vers les services selon l'hôte et le chemin, avec un contrôleur ingress qui fait le travail. La Gateway API, plus récente, est un successeur plus expressif.
10. Comment les pods se trouvent-ils entre eux ?
Grâce aux Services et au DNS du cluster. Un service nommé api dans le namespace shop est accessible via api.shop.svc.cluster.local, ou simplement api depuis l'intérieur du même namespace.
11. Qu'est-ce qu'une NetworkPolicy ?
Un ensemble de règles contrôlant quels pods peuvent communiquer avec quels autres. Par défaut, tous les pods peuvent s'atteindre mutuellement. Avec des policies (et un plugin réseau qui les applique), vous pouvez restreindre le trafic, par exemple en autorisant uniquement les pods d'API à atteindre la base de données.
Configuration et stockage
12. Quelle est la différence entre un ConfigMap et un Secret ?
Les deux contiennent de la configuration injectée sous forme de variables d'environnement ou de fichiers. Les Secrets sont destinés aux données sensibles, mais par défaut ils sont seulement encodés en base64, pas chiffrés. Activez le chiffrement au repos, restreignez l'accès avec RBAC, et envisagez un gestionnaire de secrets externe.
13. Que sont les PersistentVolumes et les PersistentVolumeClaims ?
Un PersistentVolume est un espace de stockage dans le cluster. Un PersistentVolumeClaim est la demande de stockage d'un pod. Une StorageClass permet à Kubernetes de provisionner des volumes automatiquement. Les données d'un système de fichiers de conteneur classique disparaissent quand le pod est remplacé.
14. Que sont les requests et les limits ?
Les requests sont les ressources que le scheduler réserve pour un conteneur. Les limits sont le maximum qu'il peut utiliser. Dépasser une limite de mémoire fait tuer le conteneur (OOMKilled), tandis que dépasser une limite de CPU provoque du throttling.
Fiabilité et mises à jour
15. Que sont les sondes liveness, readiness et startup ?
La sonde liveness détermine si le conteneur doit être redémarré. La sonde readiness détermine s'il doit recevoir du trafic. La sonde startup laisse du temps aux applications à démarrage lent avant que les autres sondes ne s'activent. Une erreur fréquente consiste à faire dépendre la sonde liveness d'une base de données : si celle-ci tombe, tous les pods redémarrent en boucle.
16. Comment fonctionne une mise à jour progressive (rolling update) ?
Le Deployment crée de nouveaux pods et supprime les anciens progressivement, sous le contrôle de maxSurge et maxUnavailable. Les sondes readiness déterminent quand un nouveau pod est considéré comme prêt. En cas de problème, kubectl rollout undo revient à la révision précédente.
17. Comment fonctionne l'autoscaling ?
Le Horizontal Pod Autoscaler fait varier le nombre de pods en fonction de métriques comme le CPU. Le Vertical Pod Autoscaler ajuste les requests et les limits. L'autoscaler de cluster ajoute ou retire des nœuds lorsque des pods ne peuvent pas être planifiés ou que des nœuds sont sous-utilisés.
18. Comment maintenir une application disponible pendant la maintenance d'un nœud ?
Exécutez plusieurs replicas, répartissez-les sur plusieurs nœuds ou zones, et définissez un PodDisruptionBudget pour qu'en cas d'éviction volontaire un nombre minimum de pods reste en fonctionnement. Videz les nœuds avec kubectl drain.
Dépannage
19. Un pod est en CrashLoopBackOff. Que faites-vous ?
Le conteneur démarre puis s'arrête de façon répétée. Lancez kubectl logs <pod> --previous pour voir la cause de l'échec, kubectl describe pod pour les événements, les codes de sortie et les échecs de sondes, puis vérifiez la configuration, les secrets manquants et les limites de ressources.
20. Un pod reste bloqué en Pending. Que vérifiez-vous ?
kubectl describe pod indique pourquoi le scheduler n'a pas pu le placer : CPU ou mémoire insuffisants sur tous les nœuds, node selectors ou taints incompatibles, ou une réclamation de volume non liée.
21. Un pod est OOMKilled. Que faites-vous ?
Il a dépassé sa limite de mémoire. Analysez la tendance d'utilisation, déterminez s'il s'agit d'une fuite ou d'une limite trop basse, puis augmentez la limite ou corrigez l'application. Définissez des requests proches de l'usage réel pour que la planification soit réaliste.
22. Un service est injoignable. Comment le déboguez-vous ?
- Vérifiez que les pods sont en cours d'exécution et prêts.
- Vérifiez que le selector du service correspond aux labels des pods (kubectl get endpoints).
- Testez depuis l'intérieur du cluster avec un pod temporaire.
- Vérifiez le port, le target port et l'adresse d'écoute du conteneur.
- Vérifiez les network policies, puis l'ingress et le DNS.
Sécurité et exploitation
23. Comment fonctionne le RBAC ?
Les Roles définissent des permissions sur des ressources, et les bindings les accordent à des utilisateurs, des groupes ou des service accounts. Utilisez des Roles limités à un namespace quand c'est possible, évitez cluster-admin, et attribuez à chaque workload son propre service account avec le minimum de permissions nécessaires.
24. Comment sécuriser un cluster ?
Utilisez le RBAC selon le principe du moindre privilège, restreignez l'accès à l'API, scannez les images, exécutez les conteneurs en non-root avec un système de fichiers en lecture seule quand c'est possible, appliquez des network policies, chiffrez les secrets, maintenez Kubernetes à jour et auditez l'activité.
25. Qu'est-ce que Helm ?
Un gestionnaire de paquets pour Kubernetes. Un chart est un ensemble de manifestes templatisés, et une release est une instance installée avec ses propres valeurs. Il vous aide à réutiliser et versionner vos déploiements selon les environnements. Kustomize est une autre approche, qui patche des manifestes bruts.
26. Comment déploieriez-vous une application web sur Kubernetes en toute sécurité ?
« Un Deployment avec au moins trois replicas répartis sur plusieurs zones, des requests et des limits définies, des sondes readiness et liveness, un Service et un Ingress avec TLS, la configuration dans des ConfigMaps et des Secrets, un HPA et un PodDisruptionBudget. Déployez via un pipeline avec des rolling updates et un rollback facile, et surveillez le taux d'erreur et la latence pendant le déploiement. »
Commandes à connaître
| Tâche | Commande |
|---|---|
| Lister les pods | kubectl get pods -n <namespace> |
| Détails et événements d'un pod | kubectl describe pod <pod> |
| Logs | kubectl logs <pod> -c <container> (ajoutez --previous après un crash) |
| Shell dans un pod | kubectl exec -it <pod> -- sh |
| Revenir en arrière | kubectl rollout undo deployment/<name> |
| Scaler | kubectl scale deployment/<name> --replicas=5 |
| Appliquer un manifeste | kubectl apply -f file.yaml |
Comment se préparer
Montez un petit cluster en local avec kind ou minikube et cassez des choses volontairement : un mauvais tag d'image, une sonde défaillante, une limite de mémoire trop basse. Entraînez-vous à lire la sortie de describe et logs. Préparez un incident réel que vous avez géré et ce que vous avez changé par la suite. Pour vous entraîner à la conception, consultez notre guide de system design, et pour les sujets cloud le guide d'entretien AWS.
Dites vos étapes de débogage à voix haute, car les recruteurs s'intéressent à l'ordre de vos vérifications. Un entretien simulé avec transcription vous montrera où vous avez sauté une étape. Respectez les règles de l'employeur concernant les outils d'IA lors de tout entretien en direct.
Entraînez-vous aux réponses d'entretien Kubernetes avec YesToTheOffer
Passez un entretien technique simulé, expliquez vos étapes de débogage et examinez votre transcription par la suite. 30 minutes gratuites, sans abonnement.



