Perdus en mer : Comment naviguer sur les eaux complexes de Kubernetes

August 13, 2020 / Will Stevens

Comparaison des outils Kubernetes : la source libre, les distributions et les services gérés.

Même si l’efficacité et la viabilité à long terme de Kubernetes ne sont pas à débattre, sa réputation pour la complexité n’est pas sans fondement. À cette fin, CloudOps a établi une synthèse des outils les plus reconnus pour mettre en œuvre et gérer des grappes Kubernetes. En facilitant le déploiement à l’échelle des conteneurs, Kubernetes fait en sorte que le design d’applications soit normalisé en microservices modulaires et portables qui peuvent facilement se déployer sur de multiples environnements infonuagiques. Les organisations qui cherchent à tirer profit des capacités de Kubernetes peuvent se tourner vers une panoplie d’outils de source libre, de distributions et de services gérés. Chacun possède ses mérites respectifs.

La source libre

Les outils de source libre, génériquement appelés Kubernetes « vanille », placent la totalité du déploiement de conteneurs entre les mains de votre équipe interne des opérations. La réussite du déploiement dépend donc de son expertise. Une équipe expérimentée saura profiter de la souplesse offerte et planifiera le déploiement autour de son application. Elle saura aussi gérer les mises à niveau et, grâce à sa contribution au code source, elle ajoutera des fonctionnalités adaptées respectivement aux exigences et au calendrier de son application. En plus de vous faire épargner les frais de licence, les outils de source libre vous offrent le plein contrôle sur l’avenir de votre déploiement de conteneurs.

En revanche, une équipe des opérations inexpérimentée pourra rencontrer des difficultés avec les options disponibles, lors d’un déploiement avec les outils de source libre. Kubespray est reconnu pour ses longs temps de déploiement, Kops n’est disponible que par AWS, et Kubeadm n’offre pas l’option de haute disponibilité. Même si les options d’installations Kubernetes de source libre ne sont pas difficiles, ni complexes en elles-mêmes, le nombre impressionnant d’options de configuration et de déploiement rend Kubernetes notoirement difficile à installer pour usage aux fins de production. Par ailleurs, le manque de fonctionnalités destinées aux entreprises particulièrement le soutien au protocole Lightweight Directory Access Protocol (LDAP) et le contrôle d’accès en fonction du rôle (CAFR) pourrait limiter la capacité de certaines organisations à adopter une stratégie de source libre. Bien que le contrôle de votre destin soit important, votre organisation doit être capable de manœuvrer la complexité et le caractère opérationnel à long terme des outils de source libre.

Distributions

Le concept de distribution suggère un compromis entre la souplesse des outils de source libre et facilité offerte par les services gérés. Une équipe interne d’opérations est toutefois nécessaire pour superviser le déploiement, mais le processus d’adoption de Kubernetes est simplifié par la présentation d’outils à usage spécifiques qui servent à bâtir et à gérer des grappes. Les fournisseurs de distributions vont souvent offrir des plateformes complètes qui définissent les processus d’exécution de concepts et tests, de création d’images, de déploiements et de production de mise en œuvre. Des contrats de soutien tarifés sont généralement disponibles en plus de fonctionnalités à valeur ajoutée telles que le soutien au protocole LDAP avec CAFR. Par contre, cela a pour effet d’augmenter les risques d’enfermement à un fournisseur. Tandis que les distributions limitent le potentiel de personnalisation de votre expérience (la direction n’a plus à effectuer les mises à niveau), elles permettent aux développeurs d’accélérer l’automatisation des opérations de conteneurs. Voici quelques-unes des distributions les plus connues disponibles actuellement sur le marché.

Red Hat OpenShift

Livrée comme une PaaS à usage spécifique bâtie sur une infrastructure Kubernetes, Red Hat OpenShift offre plus que les autres distributions. C’est une solution de plateforme complète qui supervise tous les aspects du cycle de vie de développement du logiciel, incluant le contrôle d’accès, la conception du code, les tests, la création et le chargement d’images vers un répertoire et le déploiement d’images publiées et de grappes d’applications. La pile entière est assurée d’interopérabilité entre le système d’exploitation (RHEL), la couche d’orchestration (Kubernetes) et l’exécution (Docker). Les mises à jour sont validées et publiées en lots afin d’assurer la cohésion, mais cela peut produire des retards. Les utilisateurs peuvent choisir l’option « en ligne » (vous donne accès à un locataire dans son déploiement), une option « réservée » (gérée pour vous), une option de « plateforme de conteneur » (permet son déploiement dans votre centre de données et comprend l’ajout tarifé d’intégration de stockage pris en charge sous forme de Gluster), et enfin, l’option « originale » (version de source libre). En général, l’offre de Red Hat pour les entreprises est extrêmement stable et est à la fois constante et facile à gérer.

Rancher

Rancher 1.0 a le déploiement déterministe et l’installation légère. Il est de source libre et aucun contrat de soutien n’est exigé. La plateforme, facile à utiliser et à gérer, est empreinte de simplicité et de souplesse; et grâce à la facilité de gestion de multiples grappes Kubernetes, elle est idéale pour les infrastructures ordinaires. En plus, elle offre le soutien au Active Directory (AD), au protocole LDAP et au Security Assurance Markup Language (SAML). Elle fut conçue pour être souple au niveau de la couche d’orchestration et cherchait à rassembler les individus qui utilisaient Kubernetes, Docker Swarm, et Cattle de Rancher. Depuis l’annonce, en septembre dernier, de la publication prévue de Rancher 2.0, nous nous attendons à une solution plus complète qui utilisera dans le futur, Kubernetes comme unique orchestration de conteneur.

Tectonic

Tectnonic utilise Kubernetes et la pile complète CoreOs pour exécuter les conteneurs Linux. Appuyé par CoreOs, Tectonic permet à l’utilisateur de tirer profit du conteneur CoreOs Linux, un système d’exploitation de conteneurs léger. Tectonic soutien aussi Quay Enterprise, un registre de conteneurs à locataires multiples avec balayage de vulnérabilité d’images. La surveillance est incluse avec le produit de base afin d’améliorer la visibilité opérationnelle. Même si Tectonic déploie Kubernetes selon le style « vanille », des fonctionnalités d’entreprises sont aussi incluses comme le soutien AD et au protocole LDAP. De plus, aucun contrat de soutien n’est exigé pour les petits déploiements allant jusqu’à dix nœuds.

Canonical

Canonical offre un déploiement à usage spécifique qui utilise Unbuntu pour toute sa configuration de nœuds. Bien que le soutien AD et au protocole LDAP soit fournit, les mises à niveau sont non-négligeables. Comme Tectonic, Canonical déploie Kubernetes selon le style « Vanille » avec quelques fonctionnalités d’entreprise. En plus d’une distribution Kubernetes, Canonical offre aussi des services Kubernetes gérés qui peuvent fonctionner soit dans vos centres de données ou sur des nuages publics. Canonical collabore avec Google pour permettre aux nœuds ouvriers GKE de tirer profit de la distribution Kubernetes de Canonical, permettant une offre entièrement gérée et qui inclut les nœuds maîtres (Google) et les nœuds ouvriers (Canonical).

Services gérés

Les services gérés de Kubernetes permettent aux entreprises de confier leur orchestration de conteneur à un fournisseur de services, en toute quiétude, grâce aux ANS. Même s’ils vous incitent à adapter votre application au service, ils facilitent le processus en offrant des services approfondis qui varient entre les fournisseurs. La majorité des services gérés Kubernetes incluent et exploitent des nœuds maîtres en plus de l’intégration des services tels que des contrôleurs d’intrusion, le stockage, des registres d’images et la gestion de l’identité. Plusieurs offrent aussi des systèmes d’exploitation optimisés pour conteneurs pour les nœuds ouvriers. Les nuages publics tirent profit de leurs ressources actuelles pour fournir l’infrastructure, ce qui a pour effet d’éliminer le besoin d’acheter et de maintenir du matériel. Ils simplifient et accélèrent les processus d’installation et de gestion des conteneurs.

Les services gérés façonnent des déploiements plus légers et des équipes des opérations et DevOps plus petites et plus concentrés. En revanche, la souplesse en est sacrifiée, car vous êtes forcés d’adapter le cycle de vie de votre application aux dictats du service. Tandis que les nœuds maîtres sont automatiquement mis à niveau (environ tous les trois mois), les nœuds ouvriers doivent être tenus à jour (généralement en deçà de deux versions) pour éviter d’en perdre le soutien. Par ailleurs, votre application pourrait ne pas être prête à soutenir les changements aux fonctionnalités introduits par ces mises à niveau. De même, les chances d’enfermement à un fournisseur augmentent par la dépendance à certaines fonctionnalités. Les services gérés de Kubernetes peuvent faciliter l’installation et la gestion de Kubernetes en tant que tel, mais il est important de savoir comment votre entreprise en sera affectée par ses limites.

Google Kubernetes Engine (GKE)

GKE a été le premier service géré de Kubernetes offert sur le marché et donc, il est celui dont l’offre est la plus mature. Kubernetes a été placé en source libre par Google, ceux-ci, par conséquent, contribuent plus que tout le monde au code source. GKE inclut beaucoup plus que les fonctionnalités de bases habituelles, par exemple, la mise à niveau et la mise à l’échelle automatiques des nœuds ouvriers par leur portail d’administration et les fonctions intégrées de services infonuagiques, telles que les contrôleurs d’intrusion pour l’équilibrage de charge, les pare-feu et les fonctionnalités de visibilité comme la surveillance et l’enregistrement. Dans le cadre de l’offre GKE, c’est Google qui effectue la gestion des nœuds maîtres donc, bien qu’il soit impossible de manipuler les nœuds selon vos besoins, vous n’avez pas à payer pour leurs ressources informatiques. De plus, vous pouvez avoir confiance au fait que les nœuds maîtres sont déployés en haute disponibilité avec des ANS. GKE fonctionne bien avec le stockage infonuagique de Google ainsi qu’avec la gestion de l’identité de Google, permettant ainsi l’intégration facile aux autres services infonuagiques de Google.

Amazon Elastic Container Service pour Kubernetes (EKS)

Bien que nouveau sur le marché, on s’attend à ce que le service Kubernetes d’Amazon ait éventuellement les mêmes fonctions que GKE de Google. De façon générale, AWS est l’offre infonuagique la plus mature sur le marché, avec ses vastes services et intégrations à valeur ajoutée disponibles. Ce n’est qu’une question de temps avant que l’offre EKS puisse tirer profit de cet immense écosystème de services et livrer une solution complètement intégrée. EKS est un déploiement AWS géré qui offre l’intégration fluide avec AWS. Par contre, cette offre a un grand potentiel d’enfermement à un fournisseur, car c’est un service de conteneur infonuagique conçu sur un écosystème totalement exclusif.

Microsoft Azure Container Service (AKS)

Nouveau, lui aussi, sur le marché, AKS est encore en train d’établir son positionnement différencié. Tout comme EKS, l’avenir dira comment le service s’adapte au marché et développe leur offre. Si vous utilisez déjà les services de Microsoft Azure, AKS est évidemment un choix à considérer et à évaluer. Étant donné la nouveauté, tant de EKS que de AKS, il est difficile de les comparer à GKE, qui ici, se retrouve manifestement en tête de file. Il faut s’attendre à ce que Microsoft déploie de grands efforts avec ce service, il sera intéressant de suivre son développement futur.

Naviguer sur les eaux complexes de Kubernetes

Kubernetes s’est avéré être une technologie robuste et fiable qui augmentera l’agilité et l’efficacité au sein de votre organisation. Bien que son installation et sa gestion soient reconnues comme étant complexes, il existe de nombreux outils pour vous permettre de tirer profit de cette technologie. Les déploiements de style « vanille » vous offrent de la souplesse et la possibilité de devenir maîtres de votre destin. Par contre, les complexités opérationnelles peuvent sembler accablantes. Les distributions gèrent les architectures et les dépendances de la plateforme, permettant ainsi aux développeurs d’exercer une pression sur le code de l’application afin d’accélérer la source des répertoires de contrôle. Elles prescrivent le déploiement. Les services gérés assument la totale responsabilité de l’exploitation de la couche de gestion de Kubernetes ; les développeurs peuvent donc rapidement développer, déployer et mettre à l’échelle les applications infonuagiques avec des grappes à la demande. Le processus est plus facile, mais la souplesse est limitée. Une connaissance approfondie des implications complexes est essentielle à la compréhension des différentes façons dont les outils Kubernetes interagissent avec les applications.

En tant que fournisseur de services Kubernetes nouvellement certifié, CloudOps offre des ateliers interactifs pour apprendre à déployer les technologies Docker et Kubernetes sur les nuages publics, incluant GCP. Pour ceux qui ne sont pas certains de la voie à suivre, nous procédons à des évaluations de plateformes applicatives afin de déterminer les besoins commerciaux et techniques de votre entreprise et mettre au point la solution idéale. Même si le processus peut sembler insurmontable, le fait de savoir naviguer entre les complexités de Kubernetes amènera votre entreprise numérique à un niveau supérieur.