Chapitre 2. Architecture de la plateforme de conteneurs OpenShift
2.1. Introduction à OpenShift Container Platform
OpenShift Container Platform est une plateforme de développement et d'exécution d'applications conteneurisées. Elle est conçue pour permettre aux applications et aux centres de données qui les prennent en charge de passer de quelques machines et applications à des milliers de machines desservant des millions de clients.
Avec son fondement dans Kubernetes, OpenShift Container Platform incorpore la même technologie qui sert de moteur aux télécommunications massives, à la vidéo en continu, aux jeux, à la banque et à d'autres applications. Sa mise en œuvre dans les technologies ouvertes Red Hat vous permet d'étendre vos applications conteneurisées au-delà d'un seul cloud à des environnements sur site et multicloud.
2.1.1. À propos de Kubernetes
Bien que les images de conteneurs et les conteneurs qui s'exécutent à partir d'elles soient les principaux éléments constitutifs du développement d'applications modernes, leur exécution à grande échelle nécessite un système de distribution fiable et flexible. Kubernetes est la norme de facto pour l'orchestration des conteneurs.
Kubernetes est un moteur d'orchestration de conteneurs open source permettant d'automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Le concept général de Kubernetes est assez simple :
- Commencez par un ou plusieurs nœuds de travail pour exécuter les charges de travail des conteneurs.
- Gérer le déploiement de ces charges de travail à partir d'un ou plusieurs nœuds du plan de contrôle.
- Envelopper les conteneurs dans une unité de déploiement appelée pod. L'utilisation de pods fournit des métadonnées supplémentaires avec le conteneur et offre la possibilité de regrouper plusieurs conteneurs dans une seule entité de déploiement.
- Créer des types d'actifs particuliers. Par exemple, les services sont représentés par un ensemble de pods et une politique qui définit comment y accéder. Cette politique permet aux conteneurs de se connecter aux services dont ils ont besoin, même s'ils ne disposent pas des adresses IP spécifiques de ces services. Les contrôleurs de réplication sont une autre ressource spéciale qui indique combien de répliques de pods sont nécessaires pour fonctionner à un moment donné. Vous pouvez utiliser cette capacité pour adapter automatiquement votre application à la demande actuelle.
En quelques années seulement, Kubernetes a connu une adoption massive dans le cloud et sur site. Le modèle de développement open source permet à de nombreuses personnes d'étendre Kubernetes en mettant en œuvre différentes technologies pour des composants tels que le réseau, le stockage et l'authentification.
2.1.2. Les avantages des applications conteneurisées
L'utilisation d'applications conteneurisées présente de nombreux avantages par rapport aux méthodes de déploiement traditionnelles. Alors que les applications étaient autrefois censées être installées sur des systèmes d'exploitation comprenant toutes leurs dépendances, les conteneurs permettent à une application de transporter ses dépendances avec elle. La création d'applications conteneurisées offre de nombreux avantages.
2.1.2.1. Avantages du système d'exploitation
Les conteneurs utilisent de petits systèmes d'exploitation Linux dédiés sans noyau. Leur système de fichiers, leur réseau, leurs cgroups, leurs tables de processus et leurs espaces de noms sont distincts du système Linux hôte, mais les conteneurs peuvent s'intégrer aux hôtes de manière transparente si nécessaire. Le fait d'être basé sur Linux permet aux conteneurs d'utiliser tous les avantages qui viennent avec le modèle de développement open source d'innovation rapide.
Chaque conteneur utilisant un système d'exploitation dédié, vous pouvez déployer sur le même hôte des applications nécessitant des dépendances logicielles conflictuelles. Chaque conteneur transporte ses propres logiciels dépendants et gère ses propres interfaces, telles que les réseaux et les systèmes de fichiers, de sorte que les applications n'ont jamais besoin d'entrer en concurrence pour ces actifs.
2.1.2.2. Avantages en termes de déploiement et de mise à l'échelle
Si vous utilisez des mises à jour en continu entre les versions majeures de votre application, vous pouvez améliorer continuellement vos applications sans temps d'arrêt tout en conservant la compatibilité avec la version actuelle.
Vous pouvez également déployer et tester une nouvelle version d'une application parallèlement à la version existante. Si le conteneur passe les tests avec succès, il suffit de déployer d'autres nouveaux conteneurs et de supprimer les anciens.
Étant donné que toutes les dépendances logicielles d'une application sont résolues dans le conteneur lui-même, vous pouvez utiliser un système d'exploitation standardisé sur chaque hôte de votre centre de données. Il n'est pas nécessaire de configurer un système d'exploitation spécifique pour chaque hôte d'application. Lorsque votre centre de données a besoin de plus de capacité, vous pouvez déployer un autre système hôte générique.
De même, la mise à l'échelle des applications conteneurisées est simple. OpenShift Container Platform offre une méthode simple et standard de mise à l'échelle de tout service conteneurisé. Par exemple, si vous créez des applications sous la forme d'un ensemble de microservices plutôt que de grandes applications monolithiques, vous pouvez mettre à l'échelle les microservices individuellement pour répondre à la demande. Cette capacité vous permet de ne faire évoluer que les services nécessaires au lieu de l'ensemble de l'application, ce qui peut vous permettre de répondre aux demandes de l'application tout en utilisant un minimum de ressources.
2.1.3. Aperçu de la plateforme OpenShift Container
OpenShift Container Platform apporte à Kubernetes des améliorations prêtes pour l'entreprise, notamment les suivantes :
- Déploiements dans le nuage hybride. Vous pouvez déployer des clusters OpenShift Container Platform sur diverses plateformes de cloud public ou dans votre centre de données.
- Technologie Red Hat intégrée. Les principaux composants d'OpenShift Container Platform proviennent de Red Hat Enterprise Linux (RHEL) et des technologies Red Hat connexes. OpenShift Container Platform bénéficie des initiatives intenses de test et de certification des logiciels de qualité d'entreprise de Red Hat.
- Modèle de développement à source ouverte. Le développement est réalisé de manière ouverte et le code source est disponible dans des dépôts de logiciels publics. Cette collaboration ouverte favorise l'innovation et le développement rapides.
Bien que Kubernetes excelle dans la gestion de vos applications, il ne spécifie ni ne gère les exigences au niveau de la plateforme ou les processus de déploiement. Des outils et des processus de gestion de plateforme puissants et flexibles sont des avantages importants qu'offre OpenShift Container Platform 4.12. Les sections suivantes décrivent certaines caractéristiques et avantages uniques d'OpenShift Container Platform.
2.1.3.1. Système d'exploitation personnalisé
OpenShift Container Platform utilise Red Hat Enterprise Linux CoreOS (RHCOS), un système d'exploitation orienté conteneur spécialement conçu pour l'exécution d'applications conteneurisées à partir d'OpenShift Container Platform et fonctionne avec de nouveaux outils pour offrir une installation rapide, une gestion basée sur l'opérateur et des mises à niveau simplifiées.
Le RHCOS comprend
- Ignition, qu'OpenShift Container Platform utilise comme configuration système de premier démarrage pour démarrer et configurer les machines.
- CRI-O, une implémentation native du runtime de conteneur Kubernetes qui s'intègre étroitement avec le système d'exploitation pour fournir une expérience Kubernetes efficace et optimisée. CRI-O permet d'exécuter, d'arrêter et de redémarrer les conteneurs. Il remplace entièrement le moteur de conteneurs Docker, qui était utilisé dans OpenShift Container Platform 3.
- Kubelet, le principal agent de nœud pour Kubernetes qui est responsable du lancement et de la surveillance des conteneurs.
Dans OpenShift Container Platform 4.12, vous devez utiliser RHCOS pour toutes les machines du plan de contrôle, mais vous pouvez utiliser Red Hat Enterprise Linux (RHEL) comme système d'exploitation pour les machines de calcul, qui sont également connues sous le nom de machines de travail. Si vous choisissez d'utiliser les machines de calcul RHEL, vous devrez effectuer davantage de maintenance système que si vous utilisez RHCOS pour toutes les machines du cluster.
2.1.3.2. Processus d'installation et de mise à jour simplifié
Avec OpenShift Container Platform 4.12, si vous disposez d'un compte avec les bonnes autorisations, vous pouvez déployer un cluster de production dans les clouds pris en charge en exécutant une seule commande et en fournissant quelques valeurs. Vous pouvez également personnaliser votre installation dans le nuage ou installer votre cluster dans votre centre de données si vous utilisez une plateforme prise en charge.
Pour les clusters qui utilisent RHCOS pour toutes les machines, la mise à jour ou la mise à niveau d'OpenShift Container Platform est un processus simple et hautement automatisé. Comme OpenShift Container Platform contrôle entièrement les systèmes et les services qui s'exécutent sur chaque machine, y compris le système d'exploitation lui-même, à partir d'un plan de contrôle central, les mises à niveau sont conçues pour devenir des événements automatiques. Si votre cluster contient des machines de travail RHEL, le plan de contrôle bénéficie du processus de mise à jour rationalisé, mais vous devez effectuer davantage de tâches pour mettre à niveau les machines RHEL.
2.1.3.3. Autres caractéristiques clés
Les opérateurs sont à la fois l'unité fondamentale de la base de code d'OpenShift Container Platform 4.12 et un moyen pratique de déployer des applications et des composants logiciels pour que vos applications les utilisent. Dans OpenShift Container Platform, les opérateurs servent de fondation à la plateforme et éliminent le besoin de mises à niveau manuelles des systèmes d'exploitation et des applications du plan de contrôle. Les opérateurs d'OpenShift Container Platform tels que le Cluster Version Operator et le Machine Config Operator permettent une gestion simplifiée, à l'échelle du cluster, de ces composants critiques.
L'Operator Lifecycle Manager (OLM) et l'OperatorHub permettent de stocker et de distribuer des opérateurs aux personnes qui développent et déploient des applications.
Le Red Hat Quay Container Registry est un registre de conteneurs Quay.io qui fournit la plupart des images de conteneurs et des opérateurs aux clusters OpenShift Container Platform. Quay.io est une version du registre public de Red Hat Quay qui stocke des millions d'images et de tags.
Parmi les autres améliorations apportées à Kubernetes dans OpenShift Container Platform, citons les améliorations apportées au réseau défini par logiciel (SDN), à l'authentification, à l'agrégation des journaux, à la surveillance et au routage. OpenShift Container Platform offre également une console web complète et l'interface CLI (oc
) personnalisée d'OpenShift.
2.1.3.4. Cycle de vie d'OpenShift Container Platform
La figure suivante illustre le cycle de vie de base d'OpenShift Container Platform :
- Créer un cluster OpenShift Container Platform
- Gestion de la grappe
- Développement et déploiement d'applications
- Extension des applications
Figure 2.1. Vue d'ensemble de la plateforme OpenShift Container Platform
2.1.4. Accès à l'internet pour OpenShift Container Platform
Dans OpenShift Container Platform 4.12, vous devez avoir accès à Internet pour installer votre cluster.
Vous devez disposer d'un accès à l'internet pour :
- Accédez à OpenShift Cluster Manager Hybrid Cloud Console pour télécharger le programme d'installation et effectuer la gestion des abonnements. Si le cluster dispose d'un accès internet et que vous ne désactivez pas Telemetry, ce service donne automatiquement des droits à votre cluster.
- Accédez à Quay.io pour obtenir les paquets nécessaires à l'installation de votre cluster.
- Obtenir les paquets nécessaires pour effectuer les mises à jour de la grappe.
Si votre cluster ne peut pas avoir d'accès direct à l'internet, vous pouvez effectuer une installation en réseau restreint sur certains types d'infrastructure que vous fournissez. Au cours de ce processus, vous téléchargez le contenu requis et l'utilisez pour remplir un registre miroir avec les paquets d'installation. Avec certains types d'installation, l'environnement dans lequel vous installez votre cluster ne nécessite pas d'accès à Internet. Avant de mettre à jour le cluster, vous mettez à jour le contenu du registre miroir.