Bonjour et bienvenue ! Nous avons rassemblé pour vous les commandes Kubernetes les plus utilisées, réunies dans une cheat sheet kubectl prête à l'emploi. Elle vous guide pas à pas dans la gestion de votre cluster Kubernetes avec l'outil en ligne de commande kubectl.
Voici un résumé rapide des commandes essentielles. Retrouvez la cheat sheet complète ci-dessous.
Contexte et configuration du cluster :
- Lister les contextes :
kubectl config get-contexts - Changer de contexte actif :
kubectl config use-context <context-name> - Afficher les détails du cluster :
kubectl cluster-info - Vérifier la version :
kubectl version
Deployments et gestion des applications :
- Déployer depuis un manifeste :
kubectl apply -f <filename.yaml> - Supprimer les ressources d'un manifeste :
kubectl delete -f <filename.yaml> - Mettre à l'échelle un deployment :
kubectl scale deployment <deployment-name> --replicas=<N> - Vérifier le statut du rollout d'un deployment :
kubectl rollout status deployment/<deployment-name> - Revenir à la version précédente d'un deployment :
kubectl rollout undo deployment/<deployment-name>
Inspection et débogage :
- Afficher toutes les ressources de tous les namespaces :
kubectl get all -A - Afficher le statut et les détails d'un pod :
kubectl describe pod <pod-name> - Suivre les logs d'un pod :
kubectl logs -f <pod-name> - Exécuter des commandes dans un conteneur :
kubectl exec -it <pod-name> -- <command> - Ouvrir un shell dans un pod :
kubectl exec -it <pod-name> -- /bin/bash - Rediriger un port local vers un pod :
kubectl port-forward <pod-name> <local-port>:<container-port>
Astuces de productivité et flags :
- Définir un alias :
alias k=kubectl - Activer l'autocomplétion :
source <(kubectl completion bash) - Filtrer les ressources par namespace : utilisez le flag
-n <namespace> - Tester des changements sans les appliquer :
kubectl apply -f <filename.yaml> --dry-run=client - Afficher les ressources au format YAML :
kubectl get pod <pod-name> -o yaml
Qu'est-ce que kubectl ?
Kubectl est l'outil en ligne de commande (CLI) de Kubernetes qui vous permet d'interagir avec vos clusters et de créer, gérer, modifier et supprimer des ressources en toute simplicité. Il communique avec le serveur d'API Kubernetes afin que vous puissiez surveiller et piloter vos applications.
Comment fonctionne kubectl ?

Kubectl fonctionne en envoyant des commandes au serveur d'API Kubernetes, qui exécute ensuite les opérations demandées au sein du cluster. Lorsque vous exécutez une commande kubectl, par exemple pour déployer une application ou consulter le statut de ressources, kubectl communique avec le serveur d'API via HTTP pour transmettre vos instructions. Le serveur d'API traite ces requêtes, met à jour l'état du cluster dans etcd (un magasin clé-valeur distribué) et demande aux autres composants, comme le scheduler ou le controller manager, d'effectuer les actions nécessaires pour atteindre l'état souhaité. Cette interaction vous permet de gérer et de surveiller efficacement vos ressources Kubernetes depuis la ligne de commande.
Remarque : dans les versions antérieures de Kubernetes, kubectl utilisait des générateurs pour créer des configurations de ressources à partir d'entrées spécifiques. Ces générateurs permettaient de préciser le type de ressource à créer, comme un Pod, un Deployment ou un Job, à l'aide du flag --generator. Par exemple, kubectl run nginx --image=nginx --generator=run-pod/v1 créait une ressource Pod. Cette approche permettait de scripter et d'automatiser la création de ressources avec des résultats prévisibles. Notez toutefois que le flag --generator a été déprécié dans Kubernetes v1.12 et supprimé dans la v1.18. Depuis la v1.18, kubectl run est simplifié et ne crée plus que des Pods, et l'usage des générateurs a été remplacé par des commandes plus explicites et déclaratives comme kubectl create et kubectl apply
C'est parti :
Configurer kubectl : version, informations du cluster et autocomplétion
La première étape après l'installation de kubectl consiste à vérifier qu'il est correctement installé et qu'il peut communiquer avec votre cluster. La commande suivante affiche la version du client et, si un cluster est configuré, celle du serveur :
kubectl versionPour confirmer que kubectl est connecté au bon cluster, utilisez :
kubectl cluster-infoCette commande affiche les adresses du plan de contrôle Kubernetes et des services principaux. En cas d'erreur, vérifiez que votre fichier kubeconfig est correctement configuré et que le cluster cible est joignable.
Vous pouvez également inspecter la configuration actuelle et les contextes disponibles avec :
kubectl config get-contextskubectl config current-contextSi vous travaillez avec plusieurs clusters, passer de l'un à l'autre est très simple :
kubectl config use-context <context-name>Remplacer <context-name> par le contexte souhaité met à jour le cluster actif pour toutes les commandes kubectl suivantes.
Pour gagner en productivité, activez l'autocomplétion du shell. Votre shell complète alors automatiquement les commandes, les noms de ressources, les namespaces et d'autres arguments lorsque vous appuyez sur la touche Tab. Pour Bash, exécutez :
echo 'source <(kubectl completion bash)' >> ~/.bashrcsource ~/.bashrcPour Zsh, utilisez :
echo 'source <(kubectl completion zsh)' >> ~/.zshrcsource ~/.zshrcUn raccourci pratique consiste à créer un alias pour kubectl et à activer l'autocomplétion pour celui-ci :
alias k=kubectlcomplete -o default -F __start_kubectl kSi vous utilisez Zsh, remplacez la dernière ligne par :
compdef __start_kubectl kAvec la vérification de version, la connectivité au cluster, la gestion des contextes et l'autocomplétion en place, votre environnement est prêt pour l'administration quotidienne de Kubernetes.
La cheat sheet kubectl ultime

Flags optionnels
Kubectl propose des flags optionnels qui enrichissent la sortie des commandes et la gestion des ressources. Par exemple :
Formats de sortie :
Sortie JSON :
Utilisez le flag -o=json pour formater la sortie de la commande en JSON.
kubectl get pods -o=jsonSortie YAML :
Utilisez le flag -o=yaml pour formater la sortie de la commande en YAML.
kubectl get pods -o=yamlSortie étendue :
L'option -o=wide fournit une sortie texte détaillée (elle affiche par exemple le nom du nœud pour les pods).
kubectl get pods -o=widePour des sorties plus personnalisées, kubectl propose le flag --custom-columns, qui permet de définir les colonnes à afficher.
Par exemple, pour lister les pods avec leur nom et le nœud sur lequel ils s'exécutent :
kubectl get pods -o=custom-columns="POD NAME:.metadata.name,NODE:.spec.nodeName"Cette commande affichera :
POD NAME NODEnginx-deployment-1 node-1nginx-deployment-2 node-2Spécification du namespace :
Par défaut, les commandes kubectl s'exécutent dans le namespace défini par le contexte courant. Pour cibler un namespace spécifique, utilisez le flag -n ou --namespace :
kubectl get pods -n <namespace_name>Pour afficher les ressources de tous les namespaces, utilisez le flag -A ou --all-namespaces :
kubectl get pods -AEt pour définir un namespace par défaut pour le contexte courant :
kubectl config set-context --current --namespace=ns_nameFichier en entrée :
Le flag -f permet de spécifier un nom de fichier, un répertoire ou une URL lors de la création d'une ressource.
kubectl create -f ./file_nameFiltrage par label :
Utilisez le flag -l pour filtrer les ressources selon des labels spécifiques.
kubectl get pods -l name=label_nameOption d'aide :
Pour afficher l'aide des commandes kubectl, utilisez le flag -h.
kubectl -hMode watch :
Vous pouvez surveiller en continu les changements de ressources avec le flag --watch (ou -w) :
kubectl get pods -wTri de la sortie :
Vous pouvez trier la sortie selon un champ spécifique avec le flag --sort-by :
kubectl get pods --sort-by=.metadata.nameUtiliser kubectl avec des alias
Travailler avec kubectl implique de saisir des commandes longues, ce qui prend du temps et favorise les erreurs. Pour gagner en efficacité, de nombreux développeurs créent des alias pour les commandes fréquentes.
Créer un alias de base
alias k=kubectlecho 'alias k=kubectl' >> ~/.bashrcVous pouvez ainsi utiliser k à la place de kubectl.
Vous pouvez utiliser le dépôt kubectl-aliases, qui fournit des centaines d'alias prédéfinis pour exécuter vos commandes plus rapidement.
Gestion du cluster, contextes et configuration
La gestion du cluster consiste à configurer, consulter et modifier votre cluster.
| Commande | Description |
|---|---|
kubectl cluster-info |
Affiche les endpoints et les informations de base de votre cluster Kubernetes. |
kubectl config get-contexts |
Liste tous les contextes définis dans votre fichier kubeconfig. |
kubectl config current-context |
Affiche le contexte actuellement actif. |
kubectl config use-context <context> |
Bascule le contexte actif vers celui que vous spécifiez. |
kubectl config delete-context <context> |
Supprime un contexte de votre fichier kubeconfig. |
kubectl api-versions |
Liste toutes les versions d'API disponibles dans le cluster. |
kubectl api-resources |
Liste tous les types de ressources disponibles dans votre cluster, avec les détails des groupes d'API et des namespaces. |
kubectl config view |
Affiche les détails de configuration de votre fichier kubeconfig (clusters, contextes, paramètres utilisateur). |
kubectl version |
Affiche les informations de version du client kubectl et du serveur Kubernetes. |
Gestion des pods
Raccourci : po
Un Pod est la plus petite unité de Kubernetes ; il représente une instance unique d'un processus en cours d'exécution dans votre cluster. Il peut contenir un ou plusieurs conteneurs qui partagent le stockage et les ressources réseau.
| Commande | Description |
|---|---|
kubectl get pods |
Liste tous les pods du namespace courant. |
kubectl describe pod <pod-name> |
Fournit des informations détaillées sur le pod spécifié : statut, événements et détails des conteneurs. |
kubectl exec -it <pod-name> <command> |
Exécute la commande indiquée dans le pod spécifié en mode interactif (les flags -it permettent l'accès à un terminal interactif). |
kubectl delete pod <pod-name> |
Supprime le pod spécifié du cluster. |
kubectl run <pod-name> --image=<image_name> |
Crée et exécute un pod avec l'image spécifiée. |
kubectl get pod -n <namespace_name> |
Liste tous les pods du namespace spécifié. |
kubectl exec <pod-name> -c <container-name> <command> |
Exécute une commande dans un conteneur spécifique d'un pod. |
kubectl top pod |
Affiche l'utilisation des ressources (CPU et mémoire) des pods. |
kubectl annotate pod <pod-name> <annotation> |
Ajoute ou met à jour une annotation sur le pod spécifié. |
kubectl get pods --field-selector=status.phase=Running |
Liste les pods actuellement en phase Running en filtrant sur le statut des pods. |
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount' |
Trie la liste des pods selon le nombre de redémarrages du premier conteneur de chaque pod. |
Pour les ReplicaSets
Raccourci : rs
Un ReplicaSet garantit qu'un nombre défini de réplicas de pods est en cours d'exécution. Sa principale particularité : les ReplicaSets prennent en charge les sélecteurs de labels basés sur des ensembles.
| Commande | Description |
|---|---|
kubectl get rs |
Liste tous les ReplicaSets du namespace courant. |
kubectl get rs <replicaset_name> -o yaml |
Affiche la configuration du ReplicaSet spécifié au format YAML. |
kubectl get rs <replicaset_name> -o json |
Affiche la configuration du ReplicaSet spécifié au format JSON. |
kubectl describe rs <rs_name> |
Fournit des informations détaillées sur le ReplicaSet spécifié. |
kubectl get rs --namespace=<ns_name> |
Liste tous les ReplicaSets du namespace spécifié. |
kubectl delete rs <rs_name> --cascade=orphan |
Supprime le ReplicaSet spécifié mais laisse ses pods en cours d'exécution (les pods deviennent orphelins). |
kubectl delete rs <rs_name> |
Supprime le ReplicaSet spécifié ainsi que tous les pods qu'il gère. |
kubectl scale rs <rs_name> --replicas=<count> |
Ajuste (met à l'échelle) le nombre de pods gérés par le ReplicaSet spécifié à la valeur indiquée. |
kubectl edit rs <rs_name> |
Ouvre la configuration du ReplicaSet dans votre éditeur par défaut pour effectuer des modifications en direct. |
kubectl replace -f <rs_file.yaml> |
Remplace la configuration existante du ReplicaSet par celle fournie dans le fichier YAML. |
Pour les DaemonSets
Raccourci : ds
Un DaemonSet garantit qu'un pod spécifique s'exécute sur tous les nœuds du cluster (ou certains d'entre eux). C'est utile pour des tâches comme l'exécution d'un agent de monitoring sur chaque nœud.
| Commande | Description |
|---|---|
kubectl get daemonset |
Liste tous les DaemonSets du namespace courant. |
kubectl describe daemonset <ds_name> |
Fournit des informations détaillées sur un DaemonSet spécifique. |
kubectl get daemonset <daemonset_name> -o yaml |
Affiche la configuration du DaemonSet spécifié au format YAML. |
kubectl get daemonset <ds_name> -o json |
Affiche la configuration du DaemonSet spécifié au format JSON. |
kubectl delete daemonset <ds_name> |
Supprime le DaemonSet spécifié du cluster. |
kubectl label daemonset <ds_name> <key>=<value> |
Ajoute ou met à jour un label sur le DaemonSet spécifié. |
kubectl annotate daemonset <ds_name> <key>=<value> |
Ajoute ou met à jour une annotation sur le DaemonSet spécifié. |
kubectl rollout status daemonset <ds_name> |
Vérifie le statut du rollout d'un DaemonSet. |
kubectl rollout history daemonset <ds_name> |
Affiche l'historique des rollouts d'un DaemonSet. |
Pour les StatefulSets
Raccourci : sts
Les StatefulSets gèrent le déploiement et la mise à l'échelle des pods, en garantissant à chacun une identité unique et stable ainsi qu'un stockage persistant. C'est essentiel pour les applications avec état.
| Commande | Description |
|---|---|
kubectl get statefulset |
Liste tous les StatefulSets du namespace courant. |
kubectl describe statefulset <statefulset_name> |
Fournit des informations détaillées sur le StatefulSet spécifié. |
kubectl get statefulset <sts_name> -o yaml |
Affiche la configuration du StatefulSet spécifié au format YAML. |
kubectl get statefulset <sts_name> -o json |
Affiche la configuration du StatefulSet spécifié au format JSON. |
kubectl edit statefulset <sts_name> |
Ouvre la configuration du StatefulSet spécifié dans votre éditeur de texte par défaut pour effectuer des modifications en direct. |
kubectl scale statefulset <sts_name> --replicas=<number> |
Ajuste le nombre de réplicas de pods gérés par le StatefulSet spécifié à la valeur indiquée. |
kubectl rollout status statefulset <statefulset_name> |
Vérifie et affiche le statut du rollout du StatefulSet spécifié. |
Pour les namespaces
Raccourci : ns
Les namespaces permettent de répartir les ressources du cluster entre plusieurs utilisateurs ou applications.
| Commande | Description |
|---|---|
kubectl get namespace |
Liste tous les namespaces de votre cluster (les namespaces du contexte courant). |
kubectl create namespace <namespace_name> |
Crée un nouveau namespace avec le nom spécifié. |
kubectl describe namespace <namespace_name> |
Fournit des informations détaillées sur le namespace spécifié. |
kubectl edit namespace <namespace_name> |
Ouvre la configuration du namespace spécifié dans votre éditeur de texte par défaut pour effectuer des modifications en direct. |
kubectl delete namespace <namespace_name> |
Supprime le namespace spécifié de votre cluster ainsi que toutes les ressources qu'il contient. |
Pour les services
Raccourci : svc
Un Service définit un ensemble logique de pods et une politique d'accès à ces derniers. Il permet la communication entre les différentes parties de votre application et peut exposer votre application au trafic externe.
| Commande | Description |
|---|---|
kubectl get services |
Liste tous les services du namespace courant |
kubectl create service <svc-type> <svc-name> --tcp=<port> |
Crée un nouveau service du type spécifié (par exemple clusterip, nodeport ou loadbalancer) avec le nom indiqué, en mappant TCP sur un port donné |
kubectl edit service <svc-name> |
Ouvre un éditeur pour modifier la configuration du service spécifié |
kubectl describe service <svc-name> |
Fournit des informations détaillées sur le service spécifié |
kubectl delete service <svc-name> |
Supprime le service spécifié du cluster |
kubectl get endpoints <svc-name> |
Liste les endpoints (c'est-à-dire les adresses IP des pods) qui sous-tendent le service spécifié |
kubectl expose deployment [deploy_name] |
Crée un service qui expose le deployment spécifié ; les ressources exposables incluent pod (po), service (svc) et replicaset (rs) |
Pour les Service Accounts
Raccourci : sa
Un ServiceAccount fournit une identité aux processus s'exécutant dans un pod, leur permettant d'interagir de manière sécurisée avec l'API Kubernetes.
| Commande | Description |
|---|---|
kubectl get serviceaccounts |
Liste tous les comptes de service du namespace courant |
kubectl describe serviceaccount <sa-name> |
Affiche des informations détaillées sur le compte de service spécifié |
kubectl replace -f <sa.yaml> |
Remplace (met à jour) un compte de service avec une nouvelle configuration |
kubectl delete serviceaccount <sa_name> |
Supprime le compte de service spécifié du cluster. |
Pour les Deployments
Raccourci : deploy
Un Deployment fournit des mises à jour déclaratives pour les pods et les ReplicaSets. Vous définissez l'état souhaité de votre application, et le contrôleur de Deployment fait converger l'état réel vers l'état souhaité à un rythme contrôlé.
| Commande | Description |
|---|---|
kubectl get deployment |
Liste tous les deployments du namespace courant. |
kubectl describe deployment <deployment_name> |
Affiche des informations détaillées sur le deployment spécifié |
kubectl create deployment <deployment-name> --image=<img-name> |
Crée un nouveau deployment nommé <deployment-name> à partir de l'image de conteneur spécifiée |
kubectl edit deployment <deployment_name> |
Ouvre la configuration du deployment dans votre éditeur de texte par défaut pour une modification en direct |
kubectl scale deployment <deployment-name> --replicas=<replica-count> |
Ajuste le nombre de réplicas de pods gérés par le deployment à la valeur spécifiée. |
kubectl set image deployment/<deployment-name> <container-name>=<new-image-name> |
Met à jour l'image d'un conteneur spécifique au sein du deployment |
kubectl rollout status deployment/<deployment-name> |
Affiche le statut actuel du rollout du deployment |
kubectl rollout pause deployment/<deployment-name> |
Met en pause le processus de rollout, bloquant toute mise à jour jusqu'à la reprise |
kubectl rollout resume deployment/<deployment-name> |
Reprend un rollout de deployment mis en pause |
kubectl rollout undo deployment/<deployment-name> |
Rétablit le deployment à sa révision précédente |
kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number> |
Rétablit le deployment à un numéro de révision spécifique |
kubectl delete deployment <deployment-name> |
Supprime le deployment spécifié ainsi que les pods qu'il gère |
Pour les Jobs et CronJobs
Raccourci : job, cj
Un Job exécute un ou plusieurs pods jusqu'à ce qu'une tâche se termine avec succès. Un CronJob crée des Jobs selon une planification, ce qui le rend utile pour les sauvegardes, les rapports et autres tâches récurrentes.
| Commande | Description |
|---|---|
kubectl get jobs |
Liste tous les Jobs du namespace courant. |
kubectl describe job <job-name> |
Affiche des informations détaillées sur le Job spécifié. |
kubectl create job <job-name> --image=<image-name> |
Crée un Job qui exécute l'image de conteneur spécifiée. |
kubectl delete job <job-name> |
Supprime le Job spécifié. |
kubectl get cronjobs |
Liste tous les CronJobs du namespace courant. |
kubectl describe cronjob <cronjob-name> |
Affiche des informations détaillées sur le CronJob spécifié. |
kubectl create cronjob <cronjob-name> --image=<image-name> --schedule="<cron-expression>" |
Crée un CronJob avec la planification spécifiée. |
kubectl create job --from=cronjob/<cronjob-name> <job-name> |
Crée un Job ponctuel à partir d'un CronJob existant. |
kubectl patch cronjob <cronjob-name> -p '{"spec":{"suspend":true}}' |
Suspend les exécutions futures du CronJob. |
kubectl delete cronjob <cronjob-name> |
Supprime le CronJob spécifié. |
Pour les Horizontal Pod Autoscalers
Raccourci : hpa
Un Horizontal Pod Autoscaler (HPA) ajuste automatiquement le nombre de réplicas de pods en fonction de métriques comme l'utilisation CPU ou mémoire.
| Commande | Description |
|---|---|
kubectl get hpa |
Liste tous les Horizontal Pod Autoscalers. |
kubectl describe hpa <hpa-name> |
Affiche des informations détaillées sur le HPA spécifié. |
kubectl autoscale deployment <deployment-name> --cpu-percent=<target> --min=<min> --max=<max> |
Crée un HPA pour le deployment spécifié. |
kubectl edit hpa <hpa-name> |
Ouvre la configuration du HPA pour une modification en direct. |
kubectl delete hpa <hpa-name> |
Supprime le HPA spécifié. |
kubectl get hpa -w |
Observe en temps réel les métriques du HPA et les événements de mise à l'échelle. |
kubectl top pods |
Affiche l'utilisation des ressources des pods exploitée par le Metrics Server. |
kubectl top nodes |
Affiche l'utilisation CPU et mémoire des nœuds. |
Pour le RBAC et la vérification des permissions
Le contrôle d'accès basé sur les rôles (RBAC) détermine quels utilisateurs et comptes de service peuvent accéder aux ressources Kubernetes.
| Commande | Description |
|---|---|
kubectl get roles |
Liste tous les Roles du namespace courant. |
kubectl get rolebindings |
Liste tous les RoleBindings du namespace courant. |
kubectl get clusterroles |
Liste tous les ClusterRoles. |
kubectl get clusterrolebindings |
Liste tous les ClusterRoleBindings. |
kubectl describe role <role-name> |
Affiche des informations détaillées sur le Role spécifié. |
kubectl describe clusterrole <clusterrole-name> |
Affiche des informations détaillées sur le ClusterRole spécifié. |
kubectl auth can-i <verb> <resource> |
Vérifie si l'utilisateur courant peut effectuer une action sur une ressource. |
kubectl auth can-i <verb> <resource> --as=<user> |
Vérifie les permissions d'un autre utilisateur. |
kubectl auth can-i --list |
Liste toutes les permissions dont dispose l'utilisateur courant. |
Pour les ressources Ingress
Raccourci : ing
Un Ingress gère l'accès HTTP et HTTPS externe aux services d'un cluster Kubernetes. Il nécessite généralement un contrôleur Ingress.
| Commande | Description |
|---|---|
kubectl get ingress |
Liste toutes les ressources Ingress du namespace courant. |
kubectl describe ingress <ingress-name> |
Affiche des informations détaillées sur l'Ingress spécifié. |
kubectl create ingress <ingress-name> --rule="<host>/<path>=<service>:<port>" |
Crée un Ingress avec une règle de routage. |
kubectl edit ingress <ingress-name> |
Ouvre la configuration de l'Ingress pour une modification en direct. |
kubectl delete ingress <ingress-name> |
Supprime l'Ingress spécifié. |
kubectl get ingress -A |
Liste les ressources Ingress de tous les namespaces. |
kubectl get ingress <ingress-name> -o yaml |
Affiche la configuration de l'Ingress au format YAML. |
Pour le débogage avancé
Ces commandes aident à diagnostiquer les problèmes d'applications, de réseau et de ressources dans un cluster Kubernetes.
| Commande | Description |
|---|---|
kubectl logs <pod-name> |
Affiche les logs du pod spécifié. |
kubectl logs <pod-name> -c <container-name> |
Affiche les logs d'un conteneur spécifique dans un pod multi-conteneurs. |
kubectl logs -f <pod-name> |
Diffuse en continu les logs du pod spécifié. |
kubectl logs <pod-name> --previous |
Affiche les logs de l'instance précédente d'un conteneur ayant planté. |
kubectl exec -it <pod-name> -- /bin/sh |
Ouvre un shell interactif dans un conteneur en cours d'exécution. |
kubectl port-forward pod/<pod-name> <local-port>:<pod-port> |
Redirige un port local vers un pod à des fins de débogage. |
kubectl debug <pod-name> -it --image=busybox |
Crée un conteneur de débogage éphémère attaché au pod spécifié. |
kubectl get events --sort-by=.metadata.creationTimestamp |
Liste les événements du cluster par ordre chronologique. |
kubectl describe node <node-name> |
Affiche l'état du nœud, les ressources allouées et les événements récents. |
kubectl cp <pod-name>:<remote-path> <local-path> |
Copie des fichiers d'un pod vers la machine locale. |
Pour les événements
Raccourci : ev
Les événements sont des enregistrements de ce qui s'est produit dans votre cluster : créations de pods, suppressions, erreurs, etc.
| Commande | Description |
|---|---|
kubectl get events |
Liste tous les événements du namespace courant |
kubectl get events --field-selector type!=Normal |
Affiche les événements qui ne sont pas de type Normal |
kubectl get events --field-selector type=Warning |
Filtre et affiche uniquement les événements de type Warning |
kubectl get events -w |
Surveille les nouveaux événements en temps réel |
kubectl get events --field-selector involvedObject.name=<object_name> |
Affiche les événements liés à un objet spécifique, comme un pod ou un nœud |
Logs
Les logs sont la sortie de vos applications en cours d'exécution et des composants système.
| Commande | Description |
|---|---|
kubectl logs <pod_name> |
Récupère et affiche les logs du conteneur principal du pod spécifié |
kubectl logs -f <pod_name> |
Diffuse en direct les logs du pod spécifié |
kubectl logs --since=6h <pod_name> |
Affiche les logs du pod spécifié générés au cours des 6 dernières heures |
kubectl logs --tail=50 <pod_name> |
Affiche les 50 dernières lignes de logs du pod spécifié |
kubectl logs -f <pod_name> -c <container_name> |
Diffuse en direct les logs d'un conteneur spécifique au sein d'un pod |
kubectl logs <pod_name> > podfile.log |
Enregistre les logs d'un pod dans un fichier nommé podfile.log |
kubectl logs --previous <pod_name> |
Affiche les logs de l'instance précédente d'un conteneur dans le pod spécifié |
Pour les Secrets et ConfigMaps
Raccourci pour les ConfigMaps : cm
Les Secrets stockent des informations sensibles comme des mots de passe ou des clés, tandis que les ConfigMaps contiennent des données de configuration non sensibles. Les deux permettent de découpler les artefacts de configuration du contenu des images afin de garder vos applications portables.
| Commande | Description |
|---|---|
kubectl get secrets |
Liste tous les secrets du namespace courant |
kubectl get configmaps |
Liste toutes les ConfigMaps du namespace courant |
kubectl describe secret <secret-name> |
Fournit des informations détaillées sur le secret spécifié |
kubectl delete secret <secret-name> |
Supprime le secret spécifié du cluster |
kubectl describe configmap <configmap-name> |
Fournit des informations détaillées sur la ConfigMap spécifiée |
kubectl create configmap <config-map-name> --from-file=<path-to-file> |
Crée une nouvelle ConfigMap avec le nom donné à partir du contenu du fichier spécifié |
kubectl create secret <secret-type> <secret-name> --from-literal=key=value |
Crée un nouveau secret du type spécifié à partir d'une paire clé-valeur |
Pour la gestion des nœuds
Raccourci : no
Un Node (nœud) est une machine de travail dans Kubernetes.
| Commande | Description |
|---|---|
kubectl get nodes |
Liste tous les nœuds de votre cluster |
kubectl describe node <node-name> |
Fournit des informations détaillées sur le nœud spécifié |
kubectl drain <node-name> |
Prépare le nœud pour la maintenance en évinçant tous les pods et en marquant le nœud comme non planifiable |
kubectl uncordon <node-name> |
Marque un nœud précédemment isolé (non planifiable) comme de nouveau planifiable, permettant d'y planifier de nouveaux pods |
kubectl label node <node_name> <key>=<value> |
Ajoute ou met à jour un label sur le nœud spécifié |
kubectl cordon <node_name> |
Marque le nœud spécifié comme non planifiable |
kubectl taint node <node_name> <key>=<value>:<taint-effect> |
Applique un taint au nœud spécifié |
kubectl top node <node_name> |
Affiche les métriques d'utilisation des ressources (CPU et mémoire) du nœud spécifié |
kubectl annotate node <node_name> <key>=<value> |
Ajoute ou met à jour une annotation sur le nœud spécifié |
Pour le stockage (PV, PVC)
Raccourci pour Persistent Volume : pv
Raccourci pour Persistent Volume Claim : pvc
Les PersistentVolumes sont des ressources de stockage de votre cluster, et les PersistentVolumeClaims sont des demandes de stockage émises par les utilisateurs.
| Commande | Description |
|---|---|
kubectl get pv |
Liste tous les Persistent Volumes du cluster |
kubectl describe pv <pv-name> |
Fournit des informations détaillées sur un Persistent Volume spécifique |
kubectl get pvc |
Liste toutes les Persistent Volume Claims du namespace courant |
kubectl describe pvc <pvc-name> |
Affiche des informations détaillées sur une Persistent Volume Claim spécifique |
Pour copier des fichiers et des répertoires
Vous pouvez transférer des fichiers entre votre système local et le conteneur d'un pod, ce qui facilite le débogage ou la sauvegarde de données.
| Commande | Description |
|---|---|
kubectl cp <local-path> <namespace>/<pod-name>:<container-path> |
Copie un fichier ou un répertoire de votre machine locale vers un conteneur dans le pod et le namespace spécifiés. |
kubectl cp <source-pod-name>:<source-container-path> <local-path> -n <namespace> |
Copie un fichier ou un répertoire depuis un conteneur d'un pod (dans le namespace donné) vers votre machine locale. |
kubectl cp <local-path> <destination-namespace>/<destination-pod-name>:<destination-container-path> |
Copie un fichier ou un répertoire de votre machine locale vers le pod et le namespace de destination. |
Pour la verbosité de sortie et le débogage
La verbosité désigne le niveau de détail des logs générés par des composants comme kubectl et kubelet. Vous pouvez ajuster la verbosité des commandes kubectl.
| Commande | Description |
|---|---|
kubectl get <resource-type> --v=<verbosity-level> |
Forme générale pour définir le niveau de verbosité. Elle indique à kubectl la quantité d'informations de débogage à inclure lors de l'exécution de la commande sur le type de ressource spécifié. |
kubectl get <resource-type> --v=0 |
Exécute la commande avec un minimum d'informations de débogage (niveau par défaut). |
kubectl get <resource-type> --v=7 |
Fournit un niveau de verbosité plus élevé, avec des informations de débogage supplémentaires, dont les en-têtes des requêtes HTTPS envoyées par le client. |
kubectl get <resource-type> --v=8 |
Augmente encore la verbosité. Au niveau 8, le contenu des requêtes et réponses HTTP (données du corps) est également affiché. |
FAQ
Qu'est-ce que kubectl ? kubectl est l'outil en ligne de commande de Kubernetes. Il envoie vos commandes au serveur d'API Kubernetes, qui exécute la requête dans le cluster : vous pouvez ainsi créer, gérer, modifier et supprimer des ressources et surveiller vos applications.
Comment passer d'un cluster à l'autre avec kubectl ?
Exécutez kubectl config get-contexts pour lister les contextes de votre fichier kubeconfig, puis kubectl config use-context <context-name> pour en activer un. Toutes les commandes kubectl suivantes s'exécutent alors sur ce cluster.
Comment lister les pods de tous les namespaces ?
Ajoutez le flag -A (ou --all-namespaces), par exemple kubectl get pods -A. Pour cibler un seul namespace, utilisez plutôt -n <namespace_name>.
Comment consulter les logs d'un conteneur qui a planté ?
Exécutez kubectl logs <pod-name> --previous pour voir les logs de l'instance précédente du conteneur. Ajoutez -c <container-name> si le pod contient plusieurs conteneurs.
Comment revenir à la version précédente d'un deployment ?
Exécutez kubectl rollout undo deployment/<deployment-name> pour revenir à la révision précédente. Pour choisir une révision spécifique, ajoutez --to-revision=<revision-number>.
Comment configurer un alias kubectl et l'autocomplétion ?
Exécutez alias k=kubectl pour utiliser k à la place de kubectl, et ajoutez-le à votre ~/.bashrc pour le conserver. Pour l'autocomplétion Bash, ajoutez source <(kubectl completion bash) à ~/.bashrc. La cheat sheet couvre aussi Zsh.
Réduisez vos coûts cloud jusqu'à 50 % avec PerfectScale
PerfectScale est un outil puissant conçu pour fonctionner en parfaite harmonie avec Kubernetes. En intégrant PerfectScale à votre environnement Kubernetes, vous simplifiez et optimisez l'orchestration de vos conteneurs. Cette intégration renforce l'efficacité de la gestion de vos clusters : vous allouez vos ressources plus efficacement, réduisez vos coûts opérationnels et améliorez la stabilité et la résilience globales de vos applications. Les analyses pilotées par l'IA de PerfectScale offrent une visibilité complète sur les performances de votre système et permettent des ajustements proactifs pour répondre à des demandes dynamiques. Vous garantissez ainsi des performances optimales tout en réduisant vos coûts jusqu'à 50 % grâce à des actions autonomes et pilotées par les données qui optimisent en continu chaque couche de votre stack Kubernetes. Pour découvrir les bénéfices de PerfectScale par vous-même, réservez une démo et démarrez un essai gratuit dès aujourd'hui !