Aller au contenu

Explorer les ressources de l'API Kubernetes

Mise à jour :

logo kubernetes

Kubernetes expose une API riche qui permet d’interagir avec toutes les ressources du cluster. Comprendre cette API et savoir comment l’explorer est essentiel pour administrer efficacement un environnement Kubernetes.

Dans cette section, nous verrons comment utiliser kubectl pour obtenir des informations sur les ressources disponibles et leurs structures. Deux commandes sont particulièrement utiles pour cela :

  • kubectl api-resources : permet de lister toutes les ressources accessibles dans l’API Kubernetes, en précisant leur groupe, version et type.
  • kubectl explain : fournit des détails sur la structure des ressources et leurs champs, facilitant la compréhension de leur utilisation.

Attaquons-nous à ces commandes pour mieux comprendre les ressources de l’API Kubernetes.

Obtenir la liste des ressources kubernetes : kubectl api-resources

La commande kubectl api-resources est un outil essentiel pour obtenir des informations sur les types de ressources disponibles dans l’API Kubernetes. Elle permet de lister toutes les ressources accessibles via l’API, ainsi que leurs groupes, versions et si elles sont nommées ou non. Cette commande est particulièrement utile pour découvrir de nouvelles ressources ou pour comprendre l’organisation de l’API Kubernetes.

Syntaxe de base

La syntaxe de base de la commande kubectl api-resources est la suivante :

Terminal window
kubectl api-resources [flags]
  • flags (optionnel) : Options supplémentaires pour filtrer ou formater la sortie.

Lister toutes les ressources :

Pour lister toutes les ressources disponibles dans l’API Kubernetes :

Terminal window
kubectl api-resources

Cette commande affiche une liste complète de toutes les ressources, avec des colonnes pour le nom de la ressource, son type court, son groupe, sa version, et si elle est de type nommée (NAMESPACED).

(Filtrer les ressources par groupe) :

Pour filtrer les ressources appartenant à un groupe spécifique, utilisez l’option --api-group :

Terminal window
kubectl api-resources --api-group=apps

Cette commande affiche toutes les ressources du groupe apps.

Informations fournies par api-resources

La commande kubectl api-resources fournit une liste structurée des ressources, incluant :

  • Name : Le nom complet de la ressource.
  • ShortNames : Les abréviations ou noms courts utilisés pour référencer la ressource.
  • APIGroups : Le groupe d’API auquel la ressource appartient.
  • Namespaced : Indique si la ressource est liée à un namespace (true ou false).
  • Kind : Le type ou la classe de la ressource.

Quelques exemples pratiques

(Lister les ressources dans un groupe spécifique) :

Pour lister toutes les ressources dans le groupe batch :

Terminal window
kubectl api-resources --api-group=batch

Cette commande affiche des ressources telles que jobs et cronjobs appartenant au groupe batch.

(Lister les ressources non nommées) :

Pour lister uniquement les ressources qui ne sont pas liées à un namespace :

Terminal window
kubectl api-resources --namespaced=false

(Lister les ressources avec des noms courts) :

Pour afficher toutes les ressources avec leurs noms courts :

Terminal window
kubectl api-resources --sort-by=shortnames

Cette commande trie les ressources par leurs noms courts, facilitant la recherche des abréviations utilisées pour certaines ressources.

Obtenir des informations détaillées sur une ressource : kubectl explain

La commande kubectl explain est un outil précieux pour comprendre la structure et les propriétés des ressources Kubernetes. Elle permet d’afficher des informations détaillées sur les champs des ressources Kubernetes, aidant ainsi à mieux comprendre comment configurer et utiliser ces ressources.

Syntaxe de base

La syntaxe de base de la commande kubectl explain est la suivante :

Terminal window
kubectl explain [RESOURCE_TYPE] [FIELD_PATH] [flags]
  • RESOURCE_TYPE : Le type de ressource que vous souhaitez expliquer (par exemple, pods, services, deployments).
  • FIELD_PATH (optionnel) : Le chemin vers le champ spécifique de la ressource que vous souhaitez expliquer.
  • flags (optionnel) : Options supplémentaires pour spécifier des détails supplémentaires.

Informations fournies par explain

La commande kubectl explain fournit des informations complètes sur les champs des ressources, y compris :

  • Description : Une description textuelle de ce que le champ représente.
  • Type : Le type de données du champ (par exemple, string, integer, array).
  • Champ requis ou optionnel : Indique si le champ est obligatoire ou optionnel.
  • Champs enfants : Les sous-champs que ce champ peut contenir.

Quelques exemples pratiques

(Expliquer une ressource de haut niveau) :

Pour obtenir une explication de haut niveau d’une ressource telle qu’un Pod :

Terminal window
kubectl explain pod

Cette commande affiche une description générale de la ressource Pod, incluant ses champs principaux et leur signification.

(Expliquer un champ spécifique) :

Pour obtenir des informations détaillées sur un champ spécifique d’une ressource, utilisez le chemin du champ. Par exemple, pour expliquer le champ spec d’un Pod :

Terminal window
kubectl explain pod.spec

(Expliquer un champ de niveau inférieur) :

Vous pouvez également obtenir des informations sur des champs plus spécifiques en fournissant un chemin plus détaillé. Par exemple, pour expliquer le champ containers sous spec d’un Pod :

Terminal window
kubectl explain pod.spec.containers

Utilisation avec des sélecteurs

Bien que la commande explain ne soit pas directement combinée avec des sélecteurs, elle peut être utilisée en conjonction avec des ressources sélectionnées pour mieux comprendre leur structure et configuration.

Conclusion

L’exploration des API et des ressources Kubernetes est une étape indispensable pour bien maîtriser l’administration d’un cluster. Grâce aux commandes kubectl api-resources et kubectl explain, il est possible d’identifier les types de ressources disponibles et de comprendre leur structure en détail.

Ces outils permettent non seulement de mieux appréhender l’organisation des objets Kubernetes, mais aussi de faciliter la rédaction et la validation des manifests kubernetes. Une bonne connaissance de ces commandes est essentielle pour optimiser la gestion des déploiements et automatiser les tâches d’administration au sein du cluster.

Notes importantes

Ce guide fait partie d’une série complète dédiée à l’utilisation de kubectl, l’outil en ligne de commande incontournable pour administrer un cluster Kubernetes. Chaque commande de kubectl est abordée en détail dans des guides spécifiques, organisés par thématique pour faciliter l’apprentissage et la référence rapide.

Pour naviguer efficacement entre les différents chapitres, vous trouverez un tableau récapitulatif listant les commandes et leurs guides associés. N’hésitez pas à explorer ces ressources pour approfondir vos connaissances et optimiser votre gestion des clusters Kubernetes.

CommandesDocumentation
kubectl api-resources, kubectl explainExploration de l’API
kubectl create, kubectl applyCréation et mise à jour des ressources
kubectl edit, kubectl patch, kubectl replaceModification des ressources
kubectl get, kubectl describe, kubectl logs, kubectl topRécupération d’informations sur les ressources
kubectl exec, kubectl attach, kubectl debug, kubectl cpGestion et Debug des Pods
kubectl delete, kubectl annotate, kubectl labelSuppression et annotation
kubectl expose, kubectl port-forward, kubectl proxyExposition et accès aux applications
kubectl scale, kubectl autoscale, kubectl rollout, kubectl setMise à l’échelle et gestion des déploiements
kubectl wait, kubectl diffAttente et validation des ressources