Aller au contenu

kubectl

À quoi il sert

kubectl est le client officiel de l'API de Kubernetes. Il lit son fichier kubeconfig pour savoir à quel cluster parler et sous quelle identité, puis envoie des requêtes HTTP au serveur d'API : lister et décrire des objets (get, describe), appliquer des manifestes (apply, diff), lire les journaux et entrer dans un conteneur (logs, exec), suivre un déploiement (rollout). Il embarque Kustomize (kubectl kustomize, apply -k) et sait générer des manifestes sans cluster (create ... --dry-run=client -o yaml).

Quand le choisir

Toujours : c'est l'outil de base pour explorer et diagnostiquer un cluster, et la référence de toute documentation. Pour déployer en continu, on le complète ou on le remplace par un outil déclaratif qui applique des manifestes versionnés (Argo CD, Flux, Helm), et l'on réserve kubectl à la lecture et aux interventions.

Points d'attention

  • Le contexte courant décide de tout : cluster, identité et namespace par défaut. Vérifiez kubectl config current-context avant une commande destructrice, et préférez un kubeconfig par cluster (KUBECONFIG).
  • Compatibilité des versions : kubectl doit être à une version mineure près du cluster (un kubectl 1.36 pilote des clusters 1.35 à 1.37).
  • Le dépôt APT officiel pkgs.k8s.io a un dépôt par version mineure : changer de version mineure demande de changer de dépôt.
  • kubectl config view masque les secrets ; --raw les affiche.
  • --dry-run=client ne fait que générer l'objet ; --dry-run=server le fait valider entièrement par le cluster sans l'enregistrer. kubectl diff montre ce qu'un apply changerait.
  • L'apply côté serveur (--server-side) suit la propriété des champs et signale les conflits au lieu d'écraser.
  • Les plugins (gérés par krew) s'exécutent avec vos identifiants : installez-les depuis des sources fiables.

Par où commencer

La leçon kubectl et l'API, puis la kubectl Quick Reference de la documentation officielle.