Kubectl

Le guide de survie

Kubectl

kubectl est l’outil en ligne de commande officiel pour interagir avec un cluster Kubernetes. Il permet d’inspecter, de déployer, de gérer et de déboguer les ressources dans un cluster : pods, services, déploiements, configurations, etc.

Grâce à kubectl, vous pouvez :

  • Observer l’état du cluster (nœuds, pods, services, logs…)
  • Appliquer des fichiers de configuration YAML pour déployer ou mettre à jour des ressources
  • Effectuer des actions de maintenance (rollback, scaling, rolling updates…)
  • Exécuter des commandes dans des conteneurs distants
  • Gérer les contextes pour basculer entre différents clusters

C’est un outil indispensable pour tout développeur, administrateur système ou ingénieur DevOps travaillant avec Kubernetes.

Cheat Sheet kubectl

Commande Description
kubectl get pods Liste tous les pods dans le namespace courant
kubectl get pods -A Liste tous les pods dans tous les namespaces
kubectl get svc Affiche les services
kubectl get nodes Liste tous les nœuds du cluster
kubectl describe pod <nom> Détaille un pod spécifique
kubectl logs <nom-du-pod> Affiche les logs d’un pod
kubectl logs -f <nom-du-pod> Suivi en temps réel des logs d’un pod
kubectl exec -it <nom-du-pod> -- bash Exécute un shell dans le pod (si bash dispo)
kubectl apply -f <fichier>.yaml Applique une configuration (création ou mise à jour)
kubectl delete -f <fichier>.yaml Supprime les ressources définies dans le fichier
kubectl delete pod <nom> Supprime un pod
kubectl create deployment <nom> --image=... Crée un déploiement
kubectl scale deployment <nom> --replicas=N Met à l’échelle un déploiement
kubectl expose deployment <nom> --port=X Crée un service exposant un déploiement
kubectl edit deployment <nom> Modifie un déploiement via un éditeur
kubectl rollout status deployment/<nom> Vérifie le statut du déploiement
kubectl rollout undo deployment/<nom> Annule le dernier déploiement
kubectl config get-contexts Liste les contextes kubeconfig disponibles
kubectl config use-context <nom> Change de contexte
kubectl config current-context Affiche le contexte actif
kubectl top pod Affiche l’usage des ressources par pod (si metrics-server dispo)
kubectl cp <pod>:<chemin> <local> Copie un fichier du pod vers local
kubectl port-forward pod/<nom> 8080:80 Redirige un port local vers un pod
kubectl get all Affiche toutes les ressources courantes (pods, svc, deploy, etc.)

Astuce : ajoute -n <namespace> pour cibler un namespace spécifique.

Exemples d’utilisation de kubectl

Lancer un conteneur de test temporaire

kubectl run test-pod --image=busybox --restart=Never -- sleep 3600

Appliquer une configuration YAML

kubectl apply -f deployment.yaml

Mettre à l’échelle un déploiement

kubectl scale deployment my-app --replicas=5

Redémarrer un déploiement

kubectl rollout restart deployment my-app

Exécuter une commande dans un pod

kubectl exec -it my-pod -- /bin/sh

Récupérer les logs d’un conteneur dans un pod

kubectl logs my-pod -c my-container

Filtrer les ressources par label

kubectl get pods -l app=my-app

Voir les événements d’un namespace

kubectl get events -n my-namespace --sort-by='.lastTimestamp'

Forcer la suppression d’un pod bloqué

kubectl delete pod my-pod --grace-period=0 --force