Aller au contenu

Les commandes kubectl indispensables

Mise à jour :

Kubectl Cheat Sheet

kubectl est l’outil en ligne de commande indispensable pour gérer un cluster Kubernetes. Il permet d’effectuer des opérations sur les ressources Kubernetes comme les pods, services, déploiements, et bien plus encore.

Pour vous aider à maîtriser ces commandes, voici un PDF cheat sheet à télécharger :

👉 Téléchargez le PDF kubectl-cheat-sheet

Qu’est-ce que kubectl ?

kubectl est l’outil CLI permettant d’interagir avec Kubernetes. Il permet de gérer les ressources, d’inspecter les objets, de déployer des applications et d’effectuer des tâches d’administration sur un cluster.

Fonctionnalités clés

  • Gestion multi-contextes : manipulation de plusieurs clusters Kubernetes
  • Gestion des ressources : création, lecture, mise à jour et suppression des ressources Kubernetes
  • Gestion des nœuds : inspection et maintenance des nœuds du cluster
  • Debug et monitoring : inspection de l’état du cluster et des applications
  • Automatisation : exécution de scripts pour la gestion des clusters

Installation et configuration

Installation avec un package manager

Linux (Snap)

Terminal window
snap install kubectl --classic

macOS (Homebrew)

Terminal window
brew install kubectl

Windows (Chocolatey)

Terminal window
choco install kubernetes-cli

Vérifier l’installation

Terminal window
kubectl version --client

Commandes générales

Vérifier la version de kubectl

Terminal window
kubectl version --short

Obtenir de l’aide

Terminal window
kubectl help
kubectl <command> --help

Gestion des contextes Kubernetes

Voir le guide détaillé

Lister les contextes disponibles

Terminal window
kubectl config get-contexts

Changer de contexte

Terminal window
kubectl config use-context <context-name>

Définir un contexte par défaut

Terminal window
kubectl config set-context <context-name>

Exploration et inspection des ressources

Voir le guide détaillé

Lister les ressources disponibles

Terminal window
kubectl api-resources

Lister les versions d’API disponibles

Terminal window
kubectl api-versions

Obtenir des détails sur une ressource

Terminal window
kubectl describe pod <pod-name>

Afficher les logs d’un pod

Terminal window
kubectl logs <pod-name>

Suivre les logs en temps réel

Terminal window
kubectl logs -f <pod-name>

Lister les événements du cluster

Terminal window
kubectl get events

Manipulation des pods et conteneurs

Voir le guide détaillé

Exécuter une commande dans un pod

Terminal window
kubectl exec -it <pod-name> -- /bin/sh

Attacher un terminal à un conteneur en cours d’exécution

Terminal window
kubectl attach <pod-name> -c <container-name>

Copier un fichier vers ou depuis un pod

Terminal window
kubectl cp <source> <destination>

Gestion des déploiements

Lister les déploiements

Terminal window
kubectl get deployments

Créer un déploiement

Terminal window
kubectl create deployment <deployment-name> --image=<image-name>

Mettre à jour un déploiement

Terminal window
kubectl set image deployment/<deployment-name> <container-name>=<new-image>

Annuler un déploiement

Terminal window
kubectl rollout undo deployment <deployment-name>

Vérifier le statut d’un déploiement

Terminal window
kubectl rollout status deployment <deployment-name>

Gestion des services et réseaux

Lister les services

Terminal window
kubectl get services

Obtenir l’adresse IP d’un service

Terminal window
kubectl get service <service-name> -o wide

Exposer un déploiement comme un service

Terminal window
kubectl expose deployment <deployment-name> --port=80 --target-port=8080

Faire du port-forwarding vers un pod

Terminal window
kubectl port-forward <pod-name> 8080:80

Utiliser un proxy vers l’API Kubernetes

Terminal window
kubectl proxy

Modification des ressources

Mettre à jour un champ d’une ressource

Terminal window
kubectl patch <resource-type> <resource-name> --patch '{"spec": {"replicas": 3}}'

Annoter une ressource

Terminal window
kubectl annotate pod <pod-name> description="Mon application"

Ajouter un label à une ressource

Terminal window
kubectl label pod <pod-name> environment=production

Gestion des nœuds

Marquer un nœud comme non éligible aux nouveaux pods

Terminal window
kubectl cordon <node-name>

Remettre un nœud en état normal

Terminal window
kubectl uncordon <node-name>

Vider un nœud avant maintenance

Terminal window
kubectl drain <node-name> --ignore-daemonsets --delete-local-data

Appliquer un taint sur un nœud

Terminal window
kubectl taint nodes <node-name> key=value:NoSchedule

Automatisation et extensions

Exécuter un diff entre un fichier et la configuration du cluster

Terminal window
kubectl diff -f <fichier.yaml>

Attendre une condition spécifique sur une ressource

Terminal window
kubectl wait --for=condition=Ready pod/<pod-name>

Gérer des plugins avec kubectl

Terminal window
kubectl plugin list

Découvrez le guide complet

Retrouvez tous les détails sur kubectl grâce à ma documentation complète