Les commandes kubectl indispensables
Mise à jour :
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)
snap install kubectl --classic
macOS (Homebrew)
brew install kubectl
Windows (Chocolatey)
choco install kubernetes-cli
Vérifier l’installation
kubectl version --client
Commandes générales
Vérifier la version de kubectl
kubectl version --short
Obtenir de l’aide
kubectl helpkubectl <command> --help
Gestion des contextes Kubernetes
Lister les contextes disponibles
kubectl config get-contexts
Changer de contexte
kubectl config use-context <context-name>
Définir un contexte par défaut
kubectl config set-context <context-name>
Exploration et inspection des ressources
Lister les ressources disponibles
kubectl api-resources
Lister les versions d’API disponibles
kubectl api-versions
Obtenir des détails sur une ressource
kubectl describe pod <pod-name>
Afficher les logs d’un pod
kubectl logs <pod-name>
Suivre les logs en temps réel
kubectl logs -f <pod-name>
Lister les événements du cluster
kubectl get events
Manipulation des pods et conteneurs
Exécuter une commande dans un pod
kubectl exec -it <pod-name> -- /bin/sh
Attacher un terminal à un conteneur en cours d’exécution
kubectl attach <pod-name> -c <container-name>
Copier un fichier vers ou depuis un pod
kubectl cp <source> <destination>
Gestion des déploiements
Lister les déploiements
kubectl get deployments
Créer un déploiement
kubectl create deployment <deployment-name> --image=<image-name>
Mettre à jour un déploiement
kubectl set image deployment/<deployment-name> <container-name>=<new-image>
Annuler un déploiement
kubectl rollout undo deployment <deployment-name>
Vérifier le statut d’un déploiement
kubectl rollout status deployment <deployment-name>
Gestion des services et réseaux
Lister les services
kubectl get services
Obtenir l’adresse IP d’un service
kubectl get service <service-name> -o wide
Exposer un déploiement comme un service
kubectl expose deployment <deployment-name> --port=80 --target-port=8080
Faire du port-forwarding vers un pod
kubectl port-forward <pod-name> 8080:80
Utiliser un proxy vers l’API Kubernetes
kubectl proxy
Modification des ressources
Mettre à jour un champ d’une ressource
kubectl patch <resource-type> <resource-name> --patch '{"spec": {"replicas": 3}}'
Annoter une ressource
kubectl annotate pod <pod-name> description="Mon application"
Ajouter un label à une ressource
kubectl label pod <pod-name> environment=production
Gestion des nœuds
Marquer un nœud comme non éligible aux nouveaux pods
kubectl cordon <node-name>
Remettre un nœud en état normal
kubectl uncordon <node-name>
Vider un nœud avant maintenance
kubectl drain <node-name> --ignore-daemonsets --delete-local-data
Appliquer un taint sur un nœud
kubectl taint nodes <node-name> key=value:NoSchedule
Automatisation et extensions
Exécuter un diff entre un fichier et la configuration du cluster
kubectl diff -f <fichier.yaml>
Attendre une condition spécifique sur une ressource
kubectl wait --for=condition=Ready pod/<pod-name>
Gérer des plugins avec kubectl
kubectl plugin list
Découvrez le guide complet
Retrouvez tous les détails sur kubectl
grâce à ma documentation
complète