Introduction à Kubernetes Cluster API et fonctionnement
1. Introduction à Cluster API
- Cluster API et Comparaison avec d'autres outils (kOps, kubeadm, etc.)
- Architecture de Cluster API : Cluster Controller, Provider, Bootstrap Provider
- Présentation des providers : CAPA (AWS), CAPZ (Azure), CAPG (GCP), CAPMOX (proxmox), CAPH (Harvester), etc
Kubernetes Cluster API (CAPI)
CAPI est un sous-projet de Kubernetes qui fournit des API déclaratives et des outils pour simplifier le provisionning, le scale, l'upgrade et le destroy de plusieurs clusters Kubernetes.
Initié par le Kubernetes Special Interest Group (SIG) Cluster Lifecycle, le projet Cluster API adopte les API et les modèles de Kubernetes pour automatiser la gestion du cycle de vie des clusters. L'infrastructure sous-jacente, incluant les machines virtuelles, les réseaux, les load balancers et les VPC, ainsi que la configuration du cluster Kubernetes, sont tous définis de manière déclarative. Cela permet des déploiements de clusters cohérents et reproductibles sur divers environnements d'infrastructure.
Cluster API se distingue des autres telque (kOps, kubeadm, rke2...) en apportant une approche unifiée pour déployer et gérer Kubernetes de manière cross-platform et cloud-agnostic.

Il fonctionne en utilisant des CRDs (Custom Resource Definitions) et des controllers pour automatiser la gestion du cycle de vie des clusters Kubernetes. Voici un aperçu de son fonctionnement :
- Il faut un cluster kubernetes pour installer cluster api. On l'appelle management cluster generalement ce premier cluster est installé autrement, minimaliste et production ready
-
Déclaration du cluster : Un utilisateur décrit son cluster Kubernetes cible en utilisant des manifestes YAML. Ces manifestes incluent des ressources comme Cluster, Machine, MachineDeployment, etc.
-
Application des manifests : Ces fichiers YAML sont appliqués sur un cluster de gestion (management cluster) qui exécute les controllers de Cluster API.
-
Création des ressources :
- Infrastructure Provider crée l'infrastructure nécessaire (machines virtuelles, réseaux, stockage, etc.).
- Bootstrap Provider génère les configurations pour initialiser les nœuds du cluster.
- Control Plane Provider met en place les composants du plan de contrôle Kubernetes.
-
Supervision et mises à jour : Une fois le cluster déployé, les controllers de Cluster API surveillent son état et permettent d'effectuer des opérations comme le scaling, les mises à jour et l'auto-réparation.
-
Suppression et nettoyage : Si un cluster doit être supprimé, Cluster API gère la suppression de toutes les ressources associées.
Ce mécanisme permet une gestion standardisée et reproductible des clusters Kubernetes, indépendamment du fournisseur d'infrastructure.
Présentation des Providers
Cluster API s'appuie sur un système de providers pour supporter différentes infrastructures. Chaque provider est un ensemble de CRDs et de controlleurs permettant de gérer les ressources spécifiques à une plateforme donnée.
-
CAPA (Cluster API Provider AWS) : Permet le déploiement et la gestion de clusters Kubernetes sur AWS.
-
CAPZ (Cluster API Provider Azure) : Fournit une intégration avec Microsoft Azure pour le provisionnement et la maintenance des clusters.
-
CAPG (Cluster API Provider GCP) : Supporte Google Cloud Platform pour la gestion des instances GCE en tant que nœuds Kubernetes.
-
CAPMOX (Cluster API Provider Proxmox) : Fournit une compatibilité avec Proxmox VE, facilitant le déploiement de Kubernetes sur une infrastructure on-premise.
- CAPL (Cluster API Provider LXC) : Fournit une compatibilité avec lxc et incus, facilitant le déploiement de Kubernetes sur une infrastructure on-premise.
-
CAPH (Cluster API Provider Harvester) : (Non production ready) Permet l'intégration avec Harvester, une solution HCI open-source basée sur KubeVirt.
Chaque provider est adapté à une infrastructure donnée et permet une gestion cohérente des clusters Kubernetes sur des environnements hybrides et multi-cloud.
Cluster API s'appuie également sur un système de bootstrap pour supporter différentes distributions kubernetes:
Bootstrap
- Amazon Elastic Kubernetes Service (EKS)
- Canonical Kubernetes
- k0smotron/k0s
- K3s
- Kubeadm
- MicroK8s
- RKE2
- Talos
Control Plane
Commentaires
Aucun commentaire pour le moment.