L’architecture d’OpenShift est conçue pour gérer et orchestrer les conteneurs basés sur Docker à l’aide de Kubernetes. Cette approche permet de créer une architecture flexible qui facilite la composition et le déploiement d’applications dans des environnements cloud et sur site. Dans cet article, nous examinerons les points clés et les composants essentiels de l’architecture d’OpenShift.
Composants d’Openshift
Dans son essence, l’architecture d’OpenShift se compose des éléments suivants :
Couche d’infrastructure
Cette couche permet d’héberger des applications sur des serveurs virtuels ou physiques, ainsi que sur des infrastructures cloud privées ou publiques.
Couche de service
Définissant les pods et les politiques d’accès, la couche de service offre une adresse IP permanente et un nom d’hôte pour vos pods, permet la connexion entre applications et utilise un équilibrage de charge interne simple pour la distribution des tâches entre les composants d’application. Un cluster OpenShift utilise deux types de nœuds : les nœuds principaux, chargés de la gestion du cluster (aussi appelés nœuds maîtres), et les nœuds travailleurs, responsables de l’exécution des applications.
Nœuds principaux
Les nœuds principaux gèrent le cluster OpenShift, exécutant des tâches clés telles que l’API et l’authentification, le stockage des données, la planification des pods, ainsi que la surveillance et l’échelonnement de la santé des pods.
Nœuds travailleurs
Chaque nœud travailleur contient des pods, qui peuvent héberger un ou plusieurs conteneurs. Ces conteneurs, pouvant être déployés comme stateless ou stateful, partagent une adresse IP, un stockage local, et des volumes de stockage attachés au sein du même pod.
Stockage persistant
Pour prévenir la perte de données, le stockage persistant permet de définir des applications et des données stateful, étant donné que les conteneurs sont éphémères et souvent redémarrés ou supprimés.
Couche de routage
Offrant un accès externe aux applications du cluster depuis tout dispositif, cette couche réalise également l’auto-routage et l’équilibrage de charge pour les pods non sains.
Concepts clés de la plateforme OpenShift Container
L’architecture d’OpenShift repose sur plusieurs concepts importants : Conteneurs
Les conteneurs représentent les unités de base d’une application sur la Plateforme OpenShift Container. Ils offrent un mécanisme léger pour isoler les processus, ne permettant l’interaction qu’avec les ressources spécifiées sur la machine hôte. Il est possible d’orchestrer les conteneurs Docker à travers plusieurs hôtes en utilisant Kubernetes et la Plateforme OpenShift Container, avec l’opération des clusters via les mécanismes natifs de Kubernetes et la CLI Docker.
Images
La Plateforme OpenShift Container utilise des images Docker standard pour créer des conteneurs. Ces images, qui sont des binaires incluant tout le nécessaire pour exécuter un conteneur ainsi que des métadonnées descriptives, peuvent être construites via la CLI Docker ou à l’aide d’une bibliothèque d’images de base OpenShift.
Registres d’Images Conteneur
Un registre d’images est indispensable pour gérer les images de conteneurs et permettre à OpenShift de stocker et récupérer les images lors de la provision des ressources. Docker Hub, tout autre registre, ou le registre d’images interne de la Plateforme OpenShift Container peuvent être utilisés.
Pods
Dans Kubernetes, un pod est l’unité opérationnelle la plus petite d’un cluster, permettant de déployer un ou plusieurs conteneurs sur une machine hôte et de les étendre à des machines supplémentaires si nécessaire. Les conteneurs au sein d’un même pod partagent le réseau et le stockage local, chaque pod ayant une adresse IP interne et son propre espace de port. La Plateforme OpenShift Container ne supporte pas les modifications des définitions de pod en cours d’exécution ; les changements nécessitent la terminaison d’un pod et la recréation d’une version modifiée. Les pods, gérables par un contrôleur de niveau supérieur et non directement par les utilisateurs, sont éphémères et ne maintiennent pas l’état lorsqu’ils sont reconstitués.
Services
Les services Kubernetes agissent comme des équilibreurs de charge internes, identifiant des ensembles de pods répliqués et facilitant la proxyfication de leurs connexions. Un service, qui offre une adresse constante accessible par d’autres objets, reste toujours disponible, même lors de l’ajout ou de la suppression de pods, permettant ainsi aux pods de s’accéder mutuellement via des adresses clusterIP par défaut.
Utilisateurs
Les utilisateurs, interagissant avec la Plateforme OpenShift Container, peuvent se voir attribuer des permissions basées sur les rôles, individuellement ou en groupes. Une authentification est nécessaire pour accéder à la plateforme, les requêtes API non authentifiées étant traitées comme anonymes. Les rôles et politiques déterminent les autorisations de chaque utilisateur.
Builds
Le processus de build, aboutissant généralement à une image exécutable, crée un objet basé sur des paramètres d’entrée. Les objets BuildConfig définissent les processus de build entiers. La Plateforme OpenShift Container crée des conteneurs Docker à partir des images de build et les pousse vers un registre d’images de conteneurs.
Flux d’Images
Fournissant des abstractions pour la référence d’images conteneur, les flux d’images et leurs tags associés ne contiennent pas de données d’image mais présentent une visualisation des images liées et des modifications apportées. Il est possible de configurer des builds et des déploiements qui réagissent aux notifications de flux d’images.
En apprendre plus ici: