Connexion / Inscription Account

Je travaille avec OpenShift depuis environ six ans et l'on m'a souvent demandé ce que c'était exactement. Depuis l'arrivée des versions 3.x et l'abandon de l'ancienne architecture en faveur de Kubernetes, les questions que l'on me pose désormais portent plutôt sur la différence entre OpenShift et Kubernetes. Essayons donc d'y répondre ensemble.

Kubernetes est le « noyau »

Chez CoreOS, nous considérions Kubernetes comme un « noyau » pour les systèmes distribués. Il nous paraissait clair qu'un planificateur de tâches bien conçu, qui fonctionne sur plusieurs machines et qui puisse harmoniser les états de différentes charges de travail gérées, aurait un effet positif sur la collaboration, comme cela avait été le cas lorsque le noyau Linux assurait la planification des charges de travail sur un hôte unique. Selon la même logique, nous savions que les différents produits trouveraient automatiquement leur rôle en fonction des priorités de leurs utilisateurs.

Le même noyau Linux est présent dans de nombreux téléphones, ordinateurs portables, serveurs et même dans le Raspberry Pi, mais chaque périphérique sur lequel ce noyau s'exécute requiert différents types de correctifs.

Le même modèle implique que Kubernetes soit identique dans les diverses distributions, même si celles-ci se distinguent par différents niveaux de correctifs qui permettent la prise en charge de la couche sur laquelle chaque système s'exécute : les distributions Linux sur lesquelles les différentes versions de Kubernetes exécutent leurs charges de travail.

OpenShift est la distribution

Cette distinction est importante. L'équipe OpenShift est fière d'avoir créé une distribution de Kubernetes centrée sur les besoins des développeurs qui travaillent sur la prochaine génération d'applications natives pour le cloud. L'équipe Tectonic (la distribution CoreOS de Kubernetes) a concentré ses efforts sur l'expérience des administrateurs et des équipes d'exploitation qui doivent être en mesure de résoudre rapidement les problèmes liés au système d'exploitation et à Kubernetes lui-même. En prévision de l'arrivée d'OpenShift 4.0, nous fournissons des interfaces aux deux types d'utilisateurs afin de proposer une plateforme qui répond à leurs besoins spécifiques.

Même si n'importe quel utilisateur peut créer sa propre distribution Linux grâce au projet Linux from Scratch, qui vous permet de sélectionner les composantes et de les assembler selon vos préférences, peu décident de le faire. Le niveau d'abstraction choisi par la plupart des utilisateurs laisse supposer qu'ils ne sont pas intéressés par la gestion (ni même par la connaissance) des différences entre les versions 2.31 et 2.33 d'Util-Linux, par exemple. Concrètement, les utilisateurs recherchent un niveau minimal de fonctionnalité (c'est-à-dire, par exemple, les commandes ou API disponibles en fonction des numéros de version) ainsi qu'une liste des fonctionnalités disponibles.

Avec OpenShift, c'est à peu près pareil. Nous fournissons Kubernetes sous la forme d'un paquet qui inclut des outils supplémentaires offrant les fonctionnalités qui nous paraissent importantes et que nos utilisateurs nous réclament. À l'instar de CoreOS et de CentOS, les distributions de Kubernetes contiennent des ensembles d'outils spécifiques destinés à différents utilisateurs. Chez Red Hat, nous nous sommes concentrés sur les outils qui permettent aux développeurs et aux équipes d'exploitation de travailler dans les meilleures conditions. C'est pourquoi, par exemple, nous incluons maintenant une version préliminaire d'Istio dans OpenShift. Nous pensons que cet outil peut être utile à de nombreux utilisateurs et qu'il devrait donc être inclus comme un atout supplémentaire dans la distribution de base.

OKD et Red Hat OpenShift

Petit retour en arrière…

OpenShift est-il un logiciel Open Source ? Tout à fait ! Tous les composants d'OpenShift sont développés par la communauté Open Source et peuvent être visualisés sur GitHub. Vous y retrouverez un grand nombre de référentiels qui couvrent la plupart des problèmes liés à la maintenance d'un cluster Kubernetes.

Nous incluons les composants logiciels requis pour utiliser Kubernetes dans un projet. Le projet en question est une distribution de Kubernetes appelée OKD, anciennement « Origin ». Ainsi, Kubernetes et OKD sont tous deux des projets Open Source, Kubernetes étant l'un des nombreux projets en amont d'OKD. De la même façon, le noyau Linux, le shell Bash de GNU, GCC et le serveur Apache httpd ont contribué à la distribution Linux Fedora. Lorsque nous souhaitons améliorer OpenShift ou y ajouter des fonctionnalités, nous intervenons en amont si ces modifications concernent Kubernetes et nous travaillons à partir de versions de Kubernetes lors de la création d'OpenShift.

Red Hat inclut ensuite le projet OKD avec divers autres projets tels que Maistra, plusieurs opérateurs ainsi que d'autres ressources dans le produit Red Hat OpenShift Container Platform. Une fois la nouvelle version de Kubernetes élaborée, la mise en paquet d'OKD, puis d'OpenShift, peut commencer.

La solution Red Hat OpenShift s'appuie sur tous ces éléments et fait l'objet de tests poussés afin de vérifier que tous les composants sont bien intégrés et que nos équipes sont prêtes à répondre aux besoins de nos clients qui exploiteront le logiciel en production. Ce travail de préparation en interne explique en partie le délai entre la création de la version d'OpenShift en amont et la version pour les entreprises. Nos clients veulent pouvoir s'appuyer sur notre savoir-faire avec la certitude que nous pouvons leur fournir une assistance de bout en bout pour tous les composants qui accompagnent OpenShift.

S'il est possible de créer entièrement sa propre distribution Linux avec le programme « Linux from Scratch », il est également possible d'installer Kubernetes soi-même, mais cette méthode convient davantage aux professionnels qui disposent du temps et de la patience requis et qui sont prêts à renoncer à l'assistance offerte aux entreprises, avec les risques que cela comporte. Si vous souhaitez vous concentrer sur vos applications, tout en tirant parti de l'expertise de Red Hat, nous vous conseillons d'opter pour la solution OpenShift Container Platform.