Kubespray : déployez facilement vos clusters Kubernetes

Auteur
Team Redac
Date de publication
Mar 28, 2024
Temps de lecture
5
m

En automatisant le déploiement, la mise à l'échelle et la gestion des applications conteneurisées, Kubernetes figure parmi les logiciels incontournables de tous les DevOps. Grâce aux clusters Kubernetes, les conteneurs sont exécutés rapidement. Mais déployer ces clusters est loin d’être aisé. À moins de disposer de bons outils, comme Kubespray.

Qu’est-ce que Kubespray ? 

Kubespray est un framework open source qui simplifie le déploiement de clusters Kubernetes. Basé sur Ansible, cet outil provisionne des clusters : 

  • soit sur des serveurs physiques sans machine virtuelle intermédiaire (en bare metal) ; 
  • soit sur une grande variété de clouders (comme GCE, Azure, Openstack, AWS, Oracle Cloud,...). 

Avec Kubespray, toutes les tâches complexes liées à la configuration ou au déploiement de clusters sont simplifiées. Par exemple, vous pourrez : 

  • Installer Kubernetes
  • Configurer le réseau (adresse IP, résolution DNS, et autres paramètres) ; 
  • Gérer les certificats TLS ; 
  • Paramétrer les options de déploiement ; 
  • Mettre à l’échelle et ajouter des nœuds ; etc. 

Finalement, c’est l’outil à utiliser pour créer un environnement opérationnel. Il permet aux développeurs de gagner un temps précieux sur la mise en place des clusters. De cette manière, ils peuvent se concentrer sur d’autres tâches à plus forte valeur ajoutée.   

Comment gérer les clusters avec Kubespray ?

La création du cluster

Kubespray est l’un des outils préférés des DevOps pour créer et déployer les clusters Kubernetes. 

Mais pour l’utiliser correctement, il convient de respecter certains prérequis : 

  • Installer Ansible v2.11 (ou une version plus récente) et python-netaddr ; 
  • Installer Jinja 2.11 (ou une version plus récente) pour exécuter les playbooks Ansible ; 
  • Permettre aux serveurs cibles d’accéder à Internet pour télécharger les images Docker ; 
  • Configurer les serveurs cibles de sorte qu’ils puissent autoriser le transfert IPv4 (IPv4 forwarding) ; 
  • Copier la clé SS sur tous les serveurs de l’inventaire Ansible ; 
  • Désactiver le pare-feu (ce n’est pas obligatoire, mais cela évite des erreurs durant l’installation). 

Construire un fichier d'inventaire Ansible

Dès lors que les prérequis sont respectés, vous devez créer un fichier d’inventaire Ansible. Pour cela, deux possibilités s’offrent à vous : 

  • Vous créez l’inventory manuellement ; 
  • Vous utilisez un script d'inventaire dynamique. 

Quelle que soit la méthode utilisée, vous devriez obtenir ce type d’inventaire :  inventory/ignite/hosts.yml

Préparer le déploiement du cluster

L’avantage de Kubespray, c’est qu’il permet de personnaliser une multitude de paramètres du cluster. Par exemple : 

  • Le choix du mode (kubeadm ou non-kubeadm) ; 
  • Les plugins CNI (réseau) ; 
  • La configuration du DNS ; 
  • Le choix du control plane (natif/binaire ou docker/rkt) ; 
  • La version de chaque composant ; 
  • Le moteur de conteneur (docker, rkt, cri-o) ; 
  • La méthode de génération des certificats ; etc. 

Pour définir l’ensemble de ces éléments, vous pouvez utiliser un fichier de variables. 

Bon à savoir : pour se familiariser avec tous les paramètres de Kubernetes, n’hésitez pas à utiliser les paramètres par défaut. 


Déployer un Cluster

Dès que vous avez configuré le Cluster, Kubespray facilite son déploiement, notamment avec l'outil en ligne de commande ansible playbook.

La requête à envoyer ressemble à cela : 

ansible-playbook -i your/inventory/hosts.ini cluster.yml -b -v \

 --private-key=~/.ssh/private_key

Cela dit, il s’agit d’une commande basique. Si vous prévoyez de déployer des clusters supérieurs à 100 nœuds, la requête devra être un peu plus complexe pour obtenir de meilleurs résultats. 

Vérifier le déploiement

Dernière étape pour créer votre cluster ; la vérification de la connectivité inter-pods et de la résolution DNS. Cette étape est simplifiée grâce à Netchecker. Les agents s'assurent que les services Kubernetes fonctionnent correctement en simulant le comportement des Pods. Pour vérifier le déploiement, vous avez accès à un indicateur de santé du cluster.

La gestion des clusters avec Kubespray 

Au-delà de la création du Cluster Kubernetes, Kubespray automatise d’autres tâches liées à leur gestion, telles que : 

  • La mise à l'échelle : Kubespray met à votre disposition les playbooks scale et remove-node pour ajouter ou supprimer des noeuds au cluster. 
  • La mise à jour : ici, c’est le playbook upgrade-cluster qui simplifie l’actualisation. 
  • Le nettoyage : grâce au playbook reset, vous pouvez réinitialiser les nœuds et supprimer les composants installés par Kubespray. Mais attention lors de la manipulation de ce playbook. Il ne doit pas servir pour les clusters de production.

Pourquoi utiliser Kubespray ? 

Si Kubespray est si populaire auprès des DevOps, c’est pour tous les avantages qu’il procure. À savoir : 

  • La flexibilité : vous pouvez personnaliser de nombreux aspects du déploiement, que ce soit au niveau des options de réseau, des composants Kubernetes, des versions logicielles, etc.
  • La compatibilité avec Bare Metal : Kubespray est spécialement conçu pour faciliter le déploiement de clusters Kubernetes sur des serveurs bare metal. Il prend en charge des environnements sans hyperviseur. C’est l’option idéale pour les développeurs préférant un déploiement direct sur le matériel physique.
  • Une automatisation complète : l’outil automatise de nombreuses tâches complexes associées au déploiement et à la gestion de clusters Kubernetes, comme l'installation, la configuration, la gestion des certificats, les mises à jour. Ce qui permet aux DevOps de gagner du temps et d'éviter des erreurs manuelles.
  • Un écosystème Kubernetes complet : Kubspray prend en charge tous les composants essentiels de Kubernetes, tels que le planificateur, les nœuds de travail, etc. Vous n’avez donc pas besoin d’utiliser d'outils supplémentaires pour déployer vos clusters. 

Utilisez Kubespray avec DevUniversity

Au-delà de Kubespray, la conception de logiciel et d’applications modernes nécessite de maîtriser parfaitement la conteneurisation, la livraison et le déploiement continu, les systèmes de gestion de base de données, … Toutes ces notions sont enseignées au sein de la DevUniversity. Découvrez notre programme de formation. 

Omnes education logo

OMNES Education est une institution privée d'enseignement supérieur et de recherche interdisciplinaire, implantée à Beaune, Bordeaux, Chambéry, Lyon, Rennes et Paris. Avec ses campus à Abidjan, Barcelone, Genève, Londres, Monaco, Munich, Montreux et San Francisco, OMNES Education occupe une place unique dans le paysage éducatif français.

15
[Écoles]
200 000
[Alumni]
3 000
[Experts]
40 000
[Étudiants]
20
[Campus en France et à l’étranger]
Management
Ingénieurs
Communication
Sciences politiques et Relations internationales
Création et design