Aller au contenu

Préférences et cookies

Afin d’améliorer votre expérience sur notre site et de réaliser des statistiques de visites, nous utilisons des cookies. Rien n’est déposé sans votre accord, et le refus n’enlève l’accès à aucun contenu. Ce choix peut être modifié à tout moment.

Gérer les traceursVos données

Personnaliser

ArticleApplications & Développement

Heptio automatise la configuration de Kubernetes avec Ksonnet

Grâce au projet Ksonnet d'Heptio, les développeurs de microservices pourront consacrer moins de temps à la configuration de Kunernetes.

La rédaction

Heptio, l’entité commerciale de Kubernetes fondée par deux créateurs du framework d'orchestration de conteneurs, a dévoilé son premier projet public Ksonnet destiné à faciliter le déploiement de Kubernetes dans l'entreprise. Conçu à l’origine par Google avant d’être cédé à la Cloud Native Computing Foundation, le système open source Kubernetes permet d’automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. S’il simplifie l’exécution d’applications sous forme de microservices, la configuration de Kubernetes elle-même est loin d’être une sinécure. Le projet d'Heptio automatise certaines étapes les plus compliquées du processus d'installation en s’appuyant sur un langage de programmation personnalisé dont les spécifications sont dédiées à un domaine d'application précis.

Ksonnet, le projet d'Heptio, se présente comme un ensemble d'outils open source qui permettent de préconfigurer un déploiement de Kubernetes en fonction du contexte. Les difficultés d'installation les plus courantes auxquels sont confrontés les utilisateurs de Kubernetes concernent la création des fichiers de configuration, ce que Heptio appelle le problème du « mur de YAML » (Yet Another Markup Language). Ksonnet utilise le langage de modélisation de données Jsonnet créé par Google pour générer automatiquement les fichiers de configuration nécessaires à un déploiement de Kubernetes.

Les fichiers résultants présentent des défauts raisonnables qui conviennent à la plupart des cas d’usage, mais ils peuvent être personnalisés au besoin. La génération de fichiers peut être entièrement réalisée par programmation ou en utilisant JSON comme modèle de base pour générer le fichier de configuration. Un des inconvénients de Ksonnet est qu'il oblige à écrire les modèles dans le code de Ksonnet. Il n’est pas possible d’utiliser pour cela un langage de script courant comme Python ou Go, le langage dans lequel Kubernetes est écrit. Paradoxalement, le langage Jsonnet sous-jacent utilisé par Ksonnet comporte des liaisons Python et Go, même si l'API Python est la seule incluse dans l’offre officielle.

Un langage spécifique pour assurer le pilotage de Kubernetes

Joe Beda, l'un des cofondateurs d'Heptio et également co-auteur de Kubernetes, a expliqué pourquoi l’entreprise avait opté pour un langage spécifique au domaine et non pour une bibliothèque proposant des liens vers le langage de son choix. L'utilisation de Python ou d'un autre langage de script « ne nous a pas permis d’atteindre nos objectifs à long terme pour rendre Kubernetes plus accessible », a déclaré Joe Beda. « À mon avis, Jsonnet offre une excellente passerelle et fait mieux qu’un bon JSON pour modéliser certaines valeurs pour manipuler la structure. Quelque chose qui a le look and feel d’un code (Python, JavaScript) peut être vraiment intimidant. Et quand vous démarrez, vous n’avez peut-être pas très envie d’écrire un programme pour déployer votre programme ». Ksonnet fait appel aux contributions de trois autres entreprises : Deis (désormais propriété de Microsoft), Bitnami et Box. Les trois ont toutes des déploiements importants de Kubernetes en production.

Mais, en dehors de Ksonnet, Heptio veut développer d’autres projets autour de Kubernetes. Lors d'une présentation à la Glue Conference 2017 qui a eu lieu les 24 et 25 mai derniers à Broomfield (Colorado), Joe Beda a mis en avant trois autres axes de développement : rendre Kubernetes « accessible aux ingénieurs non-systèmes, faciliter sa mise en route opérationnelle partout et délivrer des fonctionnalités sophistiquées axées sur l'entreprise ». Les capacités de gestion unifiée du projet Ksonnet pourraient faciliter la livraison de fonctionnalités sophistiquées par des frameworks de gestion comme Chef ou Puppet et permettre de rassembler les éléments nécessaires à l’installation de Kubernetes.

Une solution pour les clusters de noeuds

« Le projet Ksonnet n’en est encore qu’au stade de prototypes », a précisé Joe Beda. Selon lui, tout ce que Ksonnet peut apporter à Kubernetes n'a pas encore été exploré, aussi bien les différentes manières d’utiliser Ksonnet pour configurer Kubernetes que le niveau d'abstraction pour cette configuration. « Le YAML brut est le code machine de Kubernetes, et Ksonnet est actuellement une sorte de langage d’assemblage », a déclaré Joe Beda. « Nous allons faire évoluer les représentations à un niveau supérieur et continuer à offrir des solutions pour accéder au set complet de fonctionnalités de Kubernetes ». En outre, la solution Ksonnet pourrait ne concerner que quelques utilisateurs de Kubernetes. « Nous ne considérons pas Ksonnet comme un moyen exclusif de résoudre ce problème, mais nous espérons que cette solution conviendra à un grand nombre d'utilisateurs ».

Mais c’est peut-être avec les clusters Kubernetes qui ont le plus de nœuds que Ksonnet pourrait s’avérer le plus efficace. Le fait d'avoir plus de nœuds signifie généralement que des charges de travail plus complexes sont déployées sur ces nœuds. C’est le cas d’usage le plus intéressant pour Ksonnet. Un récent sondage réalisé auprès d’utilisateurs de Kubernetes a montré qu’environ 48 % des déploiements de Kubernetes utilisaient entre 1 et 10 nœuds. Pourtant, même les déploiements impliquant un petit nombre de nœuds pourraient trouver un avantage à la solution unifiée d'Heptio pour gérer la création des configurations, aussi bien les configurations manuelles que celles réalisées via une distribution comme CoreOS. Dans ce cas, en effet, Heptio fournirait une solution de plus pour automatiser la gestion de Kubernetes lui-même.

Newsletter

La Quotidienne LMI

Recevez chaque matin l’actualité IT de la rédaction.

Heptio automatise la configuration de Kubernetes avec Ksonnet