Aller au contenu
Conteneurs & Orchestration medium

Installer et configurer kubectl pas à pas

15 min de lecture

logo kubernetes

Ce guide vous permet d’installer kubectl — l’outil en ligne de commande de Kubernetes — et de vérifier qu’il fonctionne. En 15 minutes, vous saurez installer kubectl, choisir la bonne version, activer l’autocomplétion et tester la connexion à votre cluster. Prérequis : un terminal et un accès internet.

Si vous connaissez déjà kubectl et voulez juste l’installer rapidement, copiez le bloc correspondant à votre OS :

Fenêtre de terminal
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl && sudo mv kubectl /usr/local/bin/
kubectl version --client

Puis testez la connexion à votre cluster (si un kubeconfig est déjà en place) :

Fenêtre de terminal
kubectl cluster-info
kubectl get nodes

Le reste de ce guide détaille chaque étape et les options avancées.

kubectl (prononcé « koube-control ») est l’outil en ligne de commande officiel de Kubernetes. C’est votre télécommande pour piloter un cluster Kubernetes : déployer des applications, inspecter des ressources, lire des logs, diagnostiquer des problèmes.

Sans kubectl, impossible d’interagir directement avec un cluster depuis votre terminal. Chaque commande kubectl envoie une requête à l’API server du cluster, qui exécute l’action demandée.

Sans kubectlAvec kubectl
Impossible d’administrer le cluster en CLIContrôle total depuis le terminal
Dépendance à une interface webAutomatisation possible via scripts
Pas de visibilité sur les ressourcesInspection détaillée de chaque objet

Avant de commencer, vérifiez que vous disposez de :

  • Un terminal fonctionnel (Bash, Zsh, PowerShell ou Fish)
  • Un accès internet pour télécharger kubectl
  • Les droits administrateur sur votre machine (pour déplacer le binaire dans le PATH)
  • Un cluster Kubernetes accessible (optionnel pour l’installation, nécessaire pour la configuration)

Kubernetes maintient en parallèle les trois dernières versions mineures (actuellement 1.35, 1.34 et 1.33). Pour connaître la version stable la plus récente à tout instant :

Fenêtre de terminal
curl -L -s https://dl.k8s.io/release/stable.txt
# Résultat au moment de la rédaction : v1.35.2

Si vous ne connaissez pas la version de votre cluster, vérifiez-la après l’installation :

Fenêtre de terminal
kubectl version

Résultat attendu :

Client Version: v1.35.2
Server Version: v1.34.4

Ici l’écart est de 1 version mineure (1.35 vs 1.34) — c’est compatible. Si l’écart est supérieur à 1, installez une version compatible avec asdf ou mise :

Fenêtre de terminal
# Voir la version serveur
kubectl version --output=yaml | grep -A2 serverVersion
# Installer une version compatible (ex: v1.34.x)
mise use -g kubectl@1.34
# ou
asdf install kubectl 1.34.4 && asdf set --home kubectl 1.34.4
Version API serverVersions kubectl supportées
1.351.36, 1.35, 1.34
1.341.35, 1.34, 1.33
1.331.34, 1.33, 1.32

Ce tableau s’applique quelle que soit la version concrète : la règle est toujours « ±1 version mineure par rapport à l’API server ».

Choisissez la méthode d’installation correspondant à votre système d’exploitation. Chaque onglet détaille les étapes, la vérification et le dépannage.

  1. Téléchargez le binaire kubectl

    La commande suivante récupère automatiquement la dernière version stable :

    Fenêtre de terminal
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

    Cette commande interroge l’API Kubernetes pour détecter la version stable la plus récente, puis télécharge le binaire correspondant pour l’architecture amd64.

    Pour une architecture ARM64 (Raspberry Pi, Graviton) :

    Fenêtre de terminal
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"
  2. Validez le binaire (optionnel mais recommandé)

    En production ou sur des machines sensibles, vérifiez l’intégrité du binaire téléchargé :

    Fenêtre de terminal
    # Télécharger le checksum
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
    # Vérifier
    echo "$(cat kubectl.sha256) kubectl" | sha256sum --check

    Résultat attendu : kubectl: OK.

  3. Rendez le fichier exécutable et déplacez-le

    Fenêtre de terminal
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
  4. Vérifiez l’installation

    Fenêtre de terminal
    kubectl version --client

    Résultat attendu : Client Version: v1.35.x (la version stable courante).

    Si ça ne marche pas : vérifiez que /usr/local/bin est bien dans votre variable $PATH avec echo $PATH.

Avant de configurer kubectl, il est utile de comprendre sa syntaxe. Chaque commande suit le même schéma :

Fenêtre de terminal
kubectl [commande] [TYPE] [NOM] [flags]
ÉlémentRôleExemples
commandeL’opération à effectuerget, create, delete, describe
TYPELe type de ressource Kubernetespod, service, deployment
NOMLe nom de la ressource (sensible à la casse)mon-app, nginx
flagsOptions supplémentaires-n default, -o yaml

Par exemple, pour lister tous les pods du namespace production :

Fenêtre de terminal
kubectl get pods -n production

Ces options fonctionnent avec toutes les commandes kubectl :

OptionDescription
-n <namespace>Exécuter la commande dans un namespace spécifique
--context=<nom>Utiliser un contexte particulier sans modifier la config globale
--kubeconfig=<fichier>Pointer vers un fichier kubeconfig personnalisé
-o <format>Format de sortie : json, yaml, wide, name
--v=<niveau>Mode verbeux pour le debug (--v=6 pour les requêtes HTTP)

L’autocomplétion vous fait gagner un temps considérable : tapez le début d’une commande ou d’un nom de ressource, puis appuyez sur Tab pour compléter automatiquement. Elle suggère les noms de pods, services, namespaces, etc.

Le paquet bash-completion est requis. Installez-le d’abord si ce n’est pas fait :

Fenêtre de terminal
# Debian / Ubuntu
sudo apt install bash-completion
# RHEL / Rocky / Alma
sudo yum install bash-completion

Puis activez l’autocomplétion kubectl :

Fenêtre de terminal
# Activer pour la session courante
source <(kubectl completion bash)
# Activer de façon permanente
echo "source <(kubectl completion bash)" >> ~/.bashrc

Vérification : redémarrez votre shell, tapez kubectl get puis appuyez sur Tab. Une liste de types de ressources doit s’afficher (pods, services, deployments…).

Si l’autocomplétion ne fonctionne pas :

  • Bash : vérifiez que bash-completion est installé et que ~/.bashrc est bien sourcé
  • Zsh : vérifiez que compinit est appelé dans votre ~/.zshrc avant la ligne kubectl
  • Tous : rechargez le shell avec exec $SHELL après modification du fichier de config

Après l’installation, testez la connexion à votre cluster (si un kubeconfig est déjà en place) :

Fenêtre de terminal
# Tester la connexion
kubectl cluster-info
# Vérifier le contexte actif
kubectl config current-context
# Vérifier vos permissions
kubectl auth can-i get pods

Résultat attendu pour cluster-info : l’URL de l’API server et du CoreDNS s’affichent. Si vous voyez une erreur, vérifiez que votre cluster est démarré et que le fichier kubeconfig (~/.kube/config) pointe vers la bonne adresse.

SymptômeCommande de diagnosticCause probableCorrectif
command not found: kubectlcommand -v kubectl (Linux/macOS) ou where.exe kubectl (Windows)kubectl n’est pas dans le PATHDéplacez le binaire dans /usr/local/bin/ ou ajoutez son répertoire au PATH
The connection to the server was refusedkubectl config view (vérifier l’URL du serveur)Cluster non démarré ou mauvaise URLVérifiez que le cluster tourne, corrigez l’URL dans le kubeconfig
error: You must be logged inkubectl auth can-i get podsToken expiré ou invalide, problème RBACRenouvelez vos identifiants ou régénérez le kubeconfig
certificate signed by unknown authoritykubectl config view --raw (vérifier le chemin CA)Certificat CA manquant, proxy d’entreprise ou MITMVérifiez le chemin certificate-authority ; en entreprise, ajoutez le CA corporate
L’autocomplétion ne fonctionne pastype _init_completion (Bash)bash-completion non installé ou compinit absent (Zsh)Installez bash-completion ; sous Zsh, ajoutez autoload -Uz compinit && compinit
error: context "xxx" does not existkubectl config get-contextsContexte mal nommé ou fichier kubeconfig incorrectListez les contextes disponibles et vérifiez KUBECONFIG
  • kubectl est l’outil CLI officiel pour administrer les clusters Kubernetes — il communique avec l’API server du cluster.
  • La version skew policy impose que kubectl soit à ±1 version mineure de l’API server — vérifiez avec kubectl version.
  • L’installation se fait en quelques minutes sur Linux, macOS ou Windows. Validez le checksum du binaire en environnement sensible.
  • L’autocomplétion fait gagner un temps considérable — activez-la dès l’installation (Bash nécessite bash-completion, Zsh nécessite compinit).
  • Pour la configuration du kubeconfig, la gestion des contextes et le travail multi-cluster, consultez le guide dédié : Kubeconfig et contextes Kubernetes.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.