Aller au contenu
Contactez-nous
  1. Accueil
  2. /
  3. Blog
  4. /
  5. Cluster API : des clusters Kubernetes déclaratifs

Kubernetes
DevOps

Cluster API : des clusters Kubernetes déclaratifs

8 septembre 2026

7 min de lecture

Sommaire
Le principe : un cluster de gestion qui pilote des clusters gérés
Les providers d'infrastructure, la vraie complexité du modèle
Mettre à jour un cluster : remplacer, pas patcher
Ce que ça coûte réellement en exploitation
Le contrepoint honnête : k3s et Ansible font le travail sur un petit parc
Le verdict côté ops
Sources

Déployer dans un cluster Kubernetes, tout le monde sait faire aujourd'hui : manifestes, Helm, GitOps avec FluxCD. Ce qui reste largement artisanal, c'est le cycle de vie du cluster lui-même. Comment on le crée, comment on ajoute des noeuds, comment on le met à niveau sans casser la production, comment on le détruit proprement en fin de vie. Cluster API (CAPI) répond à cette couche-là, pas à celle des applications qui tournent dedans.

Le principe : un cluster de gestion qui pilote des clusters gérés

Cluster API introduit un cluster Kubernetes dédié, appelé cluster de gestion (management cluster), dont le seul travail est de décrire et de faire converger l'état d'autres clusters, les clusters gérés (workload clusters). C'est la même logique que l'API Kubernetes appliquée récursivement : au lieu de décrire des Pods et des Deployments, on décrit des objets Cluster, Machine, MachineDeployment, MachineSet, et des contrôleurs font converger l'état réel vers l'état déclaré.

Concrètement, un MachineDeployment fonctionne comme un Deployment classique, mais chaque replica est une machine complète, VM ou serveur physique, avec son système d'exploitation et son kubelet, plutôt qu'un pod. La Machine est l'unité atomique : elle référence un template d'infrastructure (quelle VM, sur quel provider, avec quelles specs) et un template de bootstrap (comment initialiser Kubernetes dessus, généralement via kubeadm).

Ce cluster de gestion n'est pas un logiciel à part : c'est un cluster Kubernetes standard, avec les CRD et les contrôleurs de Cluster API installés dessus. On peut d'ailleurs faire pivoter la gestion d'un cluster de gestion temporaire (souvent un cluster local avec kind) vers un cluster de gestion définitif une fois que ce dernier existe, une opération appelée pivoting dans la documentation officielle.

Les providers d'infrastructure, la vraie complexité du modèle

Cluster API elle-même ne sait pas créer une VM chez un hébergeur ni provisionner un serveur bare metal. Ce travail est délégué à des providers d'infrastructure (Infrastructure Providers), des contrôleurs séparés qui implémentent un contrat d'interfaces standardisé : InfraCluster et InfraMachine.

L'écosystème couvre la plupart des cibles courantes : CAPV pour vSphere, CAPZ pour Azure, CAPA pour AWS, CAPO pour OpenStack, Cluster API Provider Docker pour les tests locaux, et plusieurs providers bare metal comme Metal3. Chaque provider traduit les objets abstraits Machine en appels API concrets vers son infrastructure : créer une VM, l'attacher à un réseau, la démarrer.

C'est là que le modèle prend tout son sens sur un environnement hétérogène ou multi-cloud : le même objet MachineDeployment décrit la même intention, quel que soit le provider en dessous. C'est aussi là que le coût d'entrée se voit : chaque provider a sa propre maturité, sa propre cadence de release, et son propre lot de bugs spécifiques à l'infrastructure cible. Un provider bare metal expose davantage de complexité opérationnelle qu'un provider cloud, parce qu'il doit gérer l'inventaire physique, pas seulement des appels API.

Mettre à jour un cluster : remplacer, pas patcher

Le point le plus contre-intuitif pour qui vient de l'administration système classique : Cluster API ne met jamais à jour un noeud en place. Du point de vue du modèle, une Machine est immuable. Une fois créée, elle n'est jamais modifiée, sauf ses labels, ses annotations et son statut. Toute évolution de configuration, changement de version de Kubernetes, changement d'image système, changement de taille de VM, se traduit par la création d'une nouvelle machine et la suppression de l'ancienne.

Ce mécanisme s'appuie sur le même contrôleur de rolling update que celui utilisé pour un upgrade Kubernetes classique au niveau des workloads, mais appliqué à la couche des noeuds. Modifier le template d'infrastructure ou de bootstrap référencé par un MachineDeployment déclenche automatiquement une bascule progressive : de nouvelles machines sont créées avec la nouvelle configuration, l'ancien pool est drainé noeud par noeud, dans les limites de maxUnavailable et maxSurge, jusqu'à remplacement complet.

Sur le plan opérationnel, c'est un vrai changement de discipline. On ne se connecte plus en SSH sur un noeud pour corriger une dérive de configuration : on corrige le template, et le contrôleur reconstruit le noeud proprement. Ça élimine par construction la dérive de configuration qui s'accumule sur des noeuds mis à jour en place pendant des années, la même logique que porte Talos Linux à l'échelle du système d'exploitation entier, où même l'OS refuse la modification en place.

Ce que ça coûte réellement en exploitation

Ce confort a un prix, et il n'est pas négligeable. D'abord, le cluster de gestion lui-même est une pièce de production à opérer : sa disponibilité conditionne la capacité à réagir à un incident sur les clusters gérés (même si les clusters gérés continuent de fonctionner de façon autonome si le cluster de gestion tombe, seule la réconciliation s'arrête). Ensuite, chaque provider apporte sa propre courbe d'apprentissage, ses propres CRD, ses propres modes de panne. Enfin, le remplacement systématique des noeuds à chaque changement suppose une infrastructure sous-jacente capable d'absorber le churn : provisioning rapide, réseau qui s'attache proprement à une nouvelle VM, stockage qui suit le noeud plutôt que d'y être lié.

Le contrepoint honnête : k3s et Ansible font le travail sur un petit parc

Sur un parc de trois à cinq clusters avec un rythme de changement faible, monter un cluster de gestion Cluster API dédié, choisir et maîtriser un provider d'infrastructure, et former l'équipe au modèle de remplacement de noeuds représente un investissement disproportionné par rapport au problème réel. Un déploiement k3s piloté par des playbooks Ansible répond à la même question, provisionner et maintenir des noeuds Kubernetes, avec un outillage que l'équipe maîtrise déjà, sans introduire une nouvelle API à apprendre ni un cluster de gestion supplémentaire à sécuriser et sauvegarder.

Le seuil se déplace avec deux facteurs, pas un seul. Le premier est le nombre de clusters : en dessous d'une dizaine de clusters gérés, le coût fixe de mise en place de Cluster API dépasse rarement le gain. Le second est la fréquence de changement d'infrastructure : sur un parc stable, provisionné une fois et peu modifié, le remplacement automatisé des noeuds n'apporte pas grand-chose de plus qu'un playbook Ansible bien écrit et testé.

Cluster API commence à se justifier nettement au-delà d'une dizaine de clusters gérés, en particulier quand plusieurs équipes provisionnent des clusters de façon autonome à partir d'un même catalogue de templates, ou quand l'infrastructure cible change souvent (montée en charge fréquente, création et destruction de clusters éphémères pour du CI, multi-provider assumé). En dessous, la simplicité d'un k3s scripté gagne sur tous les critères qui comptent en exploitation réelle : temps de formation, surface d'attaque, nombre de composants à sauvegarder et à superviser.

Le verdict côté ops

Cluster API n'est pas un remplaçant de vos outils de provisioning actuels sur un petit parc, c'est une couche d'orchestration pour qui gère des clusters à l'échelle d'une flotte. La question à se poser avant d'adopter le modèle n'est pas « est-ce que c'est plus moderne », c'est « est-ce que je gère assez de clusters, avec assez de changement, pour amortir un cluster de gestion supplémentaire ». Sur moins de dix clusters stables, la réponse honnête est non.

Dimensionner l'outillage de gestion de cluster sur le nombre réel de clusters à opérer, pas sur la tendance du moment, c'est un arbitrage qu'on tranche avant chaque déploiement Kubernetes qu'on opère. Si votre parc de clusters grandit au point où chaque mise à niveau devient un projet en soi, on peut évaluer avec vous si Cluster API ou un outillage plus léger correspond à votre échelle réelle.

Sources

  • Introduction - The Cluster API Book : documentation officielle du projet, concepts de cluster de gestion et de clusters gérés.
  • Concepts - The Cluster API Book : détail des objets Cluster, Machine, MachineDeployment et du modèle d'immuabilité des noeuds.
  • Upgrading management and workload clusters - The Cluster API Book : mécanique de mise à niveau par remplacement de noeuds et paramètres de rolling update.
  • InfraMachine - The Cluster API Book : contrat d'interface implémenté par les providers d'infrastructure.
Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires

Éteindre les environnements Kubernetes non-prod la nuit
Kubernetes
DevOps
Entreprise

Éteindre les environnements Kubernetes non-prod la nuit

Scale-to-zero des namespaces non-prod : CronJob, py-kube-downscaler ou KEDA, le rôle du cluster autoscaler et le calcul de gain réellement encaissable.

5 août 2026

Lire plus

Argo Rollouts : canary et blue-green natifs sur Kubernetes
Kubernetes
DevOps

Argo Rollouts : canary et blue-green natifs sur Kubernetes

Le Deployment Kubernetes ne sait faire qu'un rolling update. Argo Rollouts ajoute canary, blue-green et rollback piloté par SLO Prometheus.

17 juil. 2026

Lire plus

FluxCD : le GitOps natif Kubernetes en 2026
DevOps
Kubernetes

FluxCD : le GitOps natif Kubernetes en 2026

Déployez FluxCD pour du GitOps natif Kubernetes. Architecture, bootstrap, réconciliation automatique et comparaison avec ArgoCD.

28 févr. 2026

Lire plus


SHPV, votre partenaire de confiance en infrastructure et infogérance informatique en France.

SHPV
Contactez-nousNous contacter
Expertise
InfrastructureDatacenterInfogéranceCloudHébergementTransit IP
Légales
Conditions Générales de VenteCPS - Contrat de ServicesCPS - Hébergement CloudCPS - Microsoft 365Accord sous-traitance RGPDTarifs interventions

SHPV © 2026 - Tous droits réservés

Mentions légalesPolitiques de confidentialité
SHPV FRANCE - SAS au capital de 16 000 € - 52 Rue Romain Rolland, 71230 Saint-Vallier - SIRET n°80886287400035 - R.C.S. Chalon-sur-Saône. Par téléphone 09 72 310 818 - Email: support@shpv.fr