Kubernetes (K8s)

Quésaco?

Kubernetes est une plateforme open-source pour la gestion des services conteneurisés. Kubernetes favorise l’approche déclarative. Kubernetes est développé et rendu open-source par Google ce qui lui a donné une grande notoriété et a rendu l’outil le plus utilisé pour la gestion et l’orchestration des services conteneurisés.

Déploiement de K8s

Kubernetes peut être déployé sur une seule machine mais également sur un cluster de machines. Dans un environnement de production, Kubernetes est généralement déployé sur un cluster de machines pour assurer la résilience aux pannes et la distribution de charge. Cependant, l’installation manuelle de Kubernetes sur un cluster est loin d’être une tâche évidente, ce qui a donné la vie à plusieurs outils qui essaient au mieux de faciliter la tâche en question.

Généralement, le déploiement d’un cluster K8s passe par deux étapes majeures :

  1. Approvisionnement des machines pour le cluster.
  2. Installation des différents composants pour K8s sur le cluster.

De ce fait, les outils existants offrent différentes possibilités, mais on peut les séparer en deux catégories:

  1. Approvisionnement + Installation: ce sont les outils qui s’occupent à la fois de l’approvisionnement des machines et de l’installation de K8s sur le cluster.
  2. Installation : ce sont les outils qui offrent la possibilité d’installer les composants nécessaires pour K8s sur un cluster existant, et donc l’étape d’approvisionnement se fait en utilisant d’autres outils.

Étude de solutions

Boite à outils

Le tableau suivant ne présente pas une liste exhaustive, mais regroupe les outils les plus utilisés dans l’ecosystème K8s, avec leurs principales utilisations dans le déploiement d’un cluster K8s.

OutilsApprovisionnementInstallation
AnsibleX 
Cluster APIXX
KopsXX
Kubeadm X
Kubespray X
TerraformX 

Solutions possibles

Comme mentionné dans la section d’avant, on peut distinguer deux types de solutions pour déployer un cluster K8s, des solutions qui donnent la possibilité d’installer K8s sur un cluster existant, et d’autres dites autonomes, qui permettent à la fois d’approvisionner le cluster et d’installer K8s.

Le schéma suivant résume les différentes possibilités qu’on peut implémenter en utilisant les outils cités.

Comparaison d’outils

Pour les comparaisons, quelques signes peuvent être utilisés pour faire court:

  • == (Moyen)
  • — (Faible)
  • ++ (Fort)

Terraform vs. Ansible

Terraform: Un logiciel open-source pour Infrastructure as Code qui permet d’approvisionner des ressources d’une infrastructure. Terraform adopte l’approche déclarative, où le code écrit décrit l’état final désiré pour l’infrastructure et non les étapes pour y parvenir. Terraform est adapté aux architectures immutables où peu de changements peuvent avoir lieu à travers le temps. La première version de Terraform est sortie en 2014 et monte rapidement en popularité et maturité grace à une large communauté.

Ansible: Un logiciel open-source principalement utilisé pour la gestion de configuration, mais qui peut servir aussi à l’approvisionnement de ressources. Ansible encourage l’approche procédurale, où le code écrit décrit étape par étape comment parvenir à l’état souhaité. Ansible est mieux adapté aux architectures mutables où des changements peuvent avoir lieu fréquemment. La première version d’Ansible est sortie en 2012 et donc est bien mature, avec une large communauté et une bonne documentation.

En résumé, le tableau suivant fait un comparatif entre les deux outils concernant les aspects les plus pértinants.

 AnsibleTerraform
Principale utilisationGestion de configurationApprovisionnement
Infrastructure adaptéeMutableImmutable
ApprocheProcéduraleDéclarative
Maturité++==

Kubeadm vs. Kubespray

Kubeadm: Un outil open-source d’installation de K8s sur un cluster. Kubeadm est créé et maintenu par l’équipe de K8s. Kubeadm est annoncé la première fois en 2016 et a rapidement gagné en popularité. L’équipe de K8s a publié en décembre 2018 que Kubeadm est passé à une version stable et prête pour tourner en production.

Kubespray: Un outil open-source d’installation de K8s sur un cluster. Kubespray se base sur Ansible pour configurer les machines du cluster et utilise kubeadm comme technologie sous-jacente. Kubespray est largement utilisé et a une bonne communauté.

En résumé, le tableau suivant fait un comparatif entre les deux outils concernant les aspects les plus pértinants.

 KubeadmKubespray
Facilité++
Configurabilité++++
Granularité++
Maturité==++

Comparaison de solutions

La comparaison des solutions possibles repose sur les critères suivant:

  • Cloud agnostique
  • Configurabilité
  • Prise en main
  • Maturité

Le tableau qui va suivre résume la comparaison entre deux solutions possibles:

 KopsCluster APITerraform + KubeadmTerraform + Kubespray
Cloud agnostique++++++
Configurabilité====++++
Prise en main++====++
Maturité++====++
Catégories : DevOps

0 commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Déploiement d’un cluster K8s sur le cloud – Étude comparative des solutions

par El Medhi A. temps de lecture : 3 min
0