
Objets fondamentaux de l'API Kubernetes
Découvrez les concepts clés de l'API Kubernetes : le modèle déclaratif, les fichiers YAML, et les objets fondamentaux comme les Pods, Namespaces, Labels et Annotations.
Les briques élémentaires : interagir avec l'API Kubernetes
Après avoir mis en place votre environnement Kubernetes et appris à utiliser `kubectl` pour communiquer avec lui, il est temps de découvrir comment nous allons réellement décrire et gérer nos applications et nos ressources système. Comment dit-on à Kubernetes "lance trois instances de mon application web" ou "assure-toi que cette base de données a accès à ce stockage" ? La réponse réside dans le coeur même de K8s : son API et les objets qu'elle manipule.
Ce chapitre plonge au coeur du modèle de fonctionnement de Kubernetes. Nous allons explorer le concept fondamental d'objet API, qui représente l'état désiré ou l'état actuel d'une entité dans le cluster (comme une application, un volume de stockage, une règle réseau, etc.). Tout dans Kubernetes est un objet API. Comprendre ces objets est donc la clé pour maîtriser la plateforme.
Déclarer l'état désiré : le modèle et les manifestes YAML
Une philosophie centrale de Kubernetes est son modèle déclaratif. Plutôt que de donner une série d'instructions impératives (comme "lance ce conteneur", puis "expose ce port"), vous décrivez l'état final que vous souhaitez atteindre. Vous déclarez : "Je veux un déploiement nommé 'webapp' avec trois instances utilisant cette image Docker et exposé sur ce port". C'est ensuite à Kubernetes, via ses contrôleurs, de travailler en continu pour faire correspondre l'état réel du cluster à cet état désiré que vous avez déclaré.
Comment déclare-t-on cet état ? Principalement via des fichiers manifestes, le plus souvent écrits en YAML (YAML Ain't Markup Language). Ces fichiers décrivent la structure et les attributs des objets Kubernetes que vous souhaitez créer ou modifier. Nous apprendrons la structure de base de ces fichiers et comment les utiliser avec `kubectl apply`.
Les objets fondamentaux à maîtriser
Dans ce chapitre, nous nous concentrerons sur les objets API les plus fondamentaux, les briques de base sur lesquelles tout le reste est construit :
- Les Pods : L'unité atomique de déploiement dans Kubernetes. Un Pod représente un groupe d'un ou plusieurs conteneurs qui sont déployés ensemble sur le même noeud, partagent le même réseau et le même stockage, et sont gérés comme une seule entité.
- Les Namespaces : Un mécanisme pour diviser les ressources du cluster en espaces virtuels isolés logiquement. Ils sont essentiels pour organiser les ressources, gérer les permissions (via RBAC) et éviter les conflits de noms dans les environnements multi-équipes ou multi-projets.
- Les Labels et les Selectors : Un système de métadonnées clé-valeur extrêmement puissant pour organiser et sélectionner des objets. Les Labels permettent de regrouper des ressources (par exemple, tous les Pods d'une application spécifique, tous les noeuds d'une zone géographique) et les Selectors permettent aux autres objets (comme les Services ou les Deployments) de cibler ces groupes.
- Les Annotations : Un autre type de métadonnées clé-valeur, similaires aux Labels, mais destinées à contenir des informations non identifiantes, souvent utilisées par des outils externes ou pour des métadonnées plus complexes (descriptions, informations de build, etc.).
Maîtriser ces objets fondamentaux est indispensable. Ils sont omniprésents dans Kubernetes et constituent la base sur laquelle nous construirons des déploiements plus complexes, gérerons la configuration, exposerons des services et bien plus encore dans les chapitres suivants. Préparez-vous à définir l'état de votre univers applicatif !