Concepts clés pour Red Hat OpenShift Container Platform
Découvrez les concepts de base des opérateurs, des conteneurs et de Kubernetes pour vous aider à comprendre les avantages de la migration de vos applications vers le cloud.
Pour plus d'informations sur l'utilisation de Red Hat® OpenShift® Container Platform, voir les rubriques suivantes:
Opérateurs et dépendances
- Qu'est-ce qu'un opérateur?
- Un opérateur est un ensemble de ressources natives Kubernetesqui conditionnent, déploient et gèrent une application Kubernetes en étendant l'API Kubernetes .
- Qu'est-ce qu'une application Kubernetes ?
- Une application Kubernetes est une application qui est déployée sur Kubernetes et gérée à l'aide d'API Kubernetes et d'outils kubectl.
- Comment fonctionne un opérateur?
Un opérateur se compose de plusieurs éléments logiciels qui permettent une gestion efficace des applications sur Kubernetes -un contrôleur et une ou plusieurs définitions de ressource personnalisée (CRD).
Le contrôleur est un code personnalisé qui est déployé sur un cluster Kubernetes qui surveille les modifications apportées aux ressources Kubernetes personnalisées et y réagit. Une ressource personnalisée est une extension de l'API Kubernetes et est utilisée pour fournir des fonctionnalités supplémentaires qui peuvent ne pas être disponibles dans l'installation Kubernetes par défaut. Il permet la personnalisation et la modularisation de Kubernetes.
- Qu'est-ce qu'une dépendance?
- Une dépendance est un prérequis qui doit être satisfait avant que le traitement puisse continuer. En d'autres termes, lorsqu'une entité d'un système ne peut pas fonctionner de façon significative sans une autre entité, elle est dite dépendante. Par exemple, une application peut avoir des dépendances sur un serveur, une base de données ou d'autres services auxquels elle est connectée. Lors de la migration vers le cloud, ces dépendances d'application représentent un risque possible. Les outils de reconnaissance peuvent vous fournir une image claire de la relation entre chaque application et ses dépendances afin que vous puissiez migrer avec succès toutes les applications et tous les services critiques vers le cloud.
Operator Lifecycle Manager (OLM)
- Qu'est-ce que Operator Lifecycle Manager
- Operator Lifecycle Manager (OLM) étend la capacité de Kubernetes en permettant aux utilisateurs d'installer, de gérer et de mettre à niveau les opérateurs et leurs dépendances dans un cluster.
- Pourquoi utiliser Operator Lifecycle Manager?
- Vous pouvez plus facilement gérer des applications en définissant une application en tant que ressource Kubernetes unique avec ses exigences et ses métadonnées. OLM requiert ces métadonnées pour vérifier qu'un opérateur peut s'exécuter en toute sécurité sur un cluster et comprendre comment les mises à jour doivent être appliquées.
- Vous pouvez automatiser les installations d'application et résoudre les dépendances ou effectuer une installation manuelle avec kubectl.
- Vous pouvez automatiser les mises à jour d'application et appliquer des règles d'approbation différentes pour chacune d'elles.
Conteneurisation, Kuberneteset Red Hat OpenShift Container Platform
- Qu'est-ce qu'un conteneur ?
- Un conteneur est une unité exécutable de logiciel dans laquelle le code d'application est conditionné avec des bibliothèques et des dépendances. Il peut être exécuté n'importe où sur le bureau, l'informatique traditionnelle ou le cloud. Les conteneurs tirent parti d'une forme de virtualisation de système d'exploitation (OS), de sorte que plusieurs applications partagent le système d'exploitation en isolant les processus et en contrôlant la quantité d'UC, de mémoire et de disque à laquelle ces processus peuvent accéder.
- Qu'est-ce que la conteneurisation?
- La conteneurisation est le processus de conditionnement du code logiciel et de toutes ses dépendances afin qu'il puisse s'exécuter de manière cohérente sur n'importe quelle infrastructure.
- Avantages de la conteneurisation
La conteneurisation offre les avantages suivants aux développeurs et aux équipes de développement:
- Portabilité: un conteneur crée un package exécutable de logiciels qui est extrait du système d'exploitation hôte (non lié ou dépendant de celui-ci), et est donc portable et capable de s'exécuter de manière uniforme et cohérente sur n'importe quelle plateforme ou n'importe quel cloud.
- Agilité: Le Docker Engine open source pour l'exécution de conteneurs a démarré la norme de l'industrie pour les conteneurs avec des outils de développement simples et une approche de conditionnement universel qui fonctionne sur les systèmes d'exploitation Linux® et Windows . Désormais, de nombreux utilisateurs préfèrent les moteurs gérés par l'OCI (Open Container Initiative). Les développeurs de logiciels peuvent continuer à utiliser des outils et des processus agiles ou DevOps pour un développement et une amélioration rapides des applications.
- Vitesse : les conteneurs sont souvent qualifiés de « légers », ce qui signifie qu'ils partagent le noyau du système d'exploitation (OS) de l'ordinateur. Cette architecture améliore l'efficacité du serveur, réduit les coûts de serveur et de licence et réduit les temps d'initialisation.
- Isolation des pannes: chaque application conteneurisée est isolée et fonctionne indépendamment des autres. La défaillance d'un conteneur n'affecte pas le fonctionnement continu des autres conteneurs. Les équipes de développement peuvent identifier et corriger les problèmes techniques au sein d'un conteneur sans temps d'indisponibilité dans d'autres conteneurs. En outre, le moteur de conteneur peut utiliser toutes les techniques d'isolement de sécurité du système d'exploitation-telles que le contrôle d'accès SELinux-pour isoler les erreurs dans les conteneurs.
- Efficacité : les logiciels exécutés dans des environnements conteneurisés partagent le noyau du système d'exploitation de la machine, et les couches d'application au sein d'un conteneur peuvent être partagées entre les conteneurs. Ainsi, les conteneurs sont intrinsèquement plus petits en capacité qu'une machine virtuelle et nécessitent moins de temps de démarrage, ce qui permet à beaucoup plus de conteneurs de s'exécuter sur la même capacité de calcul qu'une machine virtuelle unique. Cette architecture améliore l'efficacité des serveurs et réduit les coûts liés aux serveurs et aux licences.
- Facilité de gestion: une plateforme d'orchestration de conteneur automatise l'installation, la mise à l'échelle et la gestion des charges de travail et des services conteneurisés. Les plateformes d'orchestration de conteneurs peuvent faciliter les tâches de gestion telles que la mise à l'échelle d'applications conteneurisées, le déploiement de nouvelles versions d'applications et la surveillance, la journalisation et le débogage, entre autres fonctions. Kubernetes, peut-être le système d'orchestration de conteneur le plus populaire disponible, est une technologie open source (initialement open source par Google, basée sur leur projet interne appelé Borg) qui automatise les fonctions de conteneur Linux à l'origine. Kubernetes fonctionne avec de nombreux moteurs de conteneur, tels que Docker, mais il fonctionne également avec tout système de conteneur conforme aux normes OCI (Open Container Initiative) pour les formats d'image de conteneur et les environnements d'exécution.
- Sécurité: l'isolement des applications en tant que conteneurs empêche intrinsèquement l'invasion de code malveillant d'affecter d'autres conteneurs ou le système hôte. En outre, des droits de sécurité peuvent être définis pour bloquer automatiquement les composants indésirables dans les conteneurs ou limiter les communications avec les ressources inutiles.
Pour en savoir plus sur la conteneurisation, voir La conteneurisation expliquée.
- Qu'est-ce que Kubernetes ?
- Kubernetes -également appelé "k8s" ou "kube"-est une plateforme d'orchestration de conteneur pour la planification et l'automatisation du déploiement, de la gestion et de la mise à l'échelle des applications conteneurisées.
- Pourquoi utiliser Kubernetes?
Les équipes chargées des opérations doivent planifier et automatiser le déploiement, la mise en réseau, l'évolutivité et la disponibilité d'un nombre sans cesse croissant de conteneurs.
Les développeurs choisissent Kubernetes pour son large éventail de fonctionnalités, son vaste écosystème croissant d'outils open source et sa prise en charge et sa portabilité parmi les principaux fournisseurs de cloud (dont certains offrent désormais des services Kubernetes entièrement gérés).
- Que fait Kubernetes ?
Kubernetes planifie et automatise les tâches suivantes:
- Déploiement: Déploiement d'un nombre spécifié de conteneurs sur un hôte spécifié et maintien de leur exécution dans un état souhaité.
- Déploiements: un déploiement est une modification apportée à un déploiement. A l'aide de Kubernetes, vous pouvez lancer, mettre en pause, reprendre ou annuler des déploiements.
- Reconnaissance de service: Kubernetes peut exposer automatiquement un conteneur à Internet ou à d'autres conteneurs à l'aide d'un nom DNS ou d'une adresse IP.
- Mise à disposition du stockage: définissez Kubernetes pour monter du stockage en cloud ou local persistant pour vos conteneurs selon les besoins.
- Equilibrage de charge et mise à l'échelle: lorsque le trafic est acheminé vers des pics de conteneur, Kubernetes peut utiliser l'équilibrage de charge et la mise à l'échelle pour le répartir sur le réseau afin de maintenir la stabilité.
- Auto-réparation pour une haute disponibilité : lorsqu'un conteneur tombe en panne,Kubernetes peut le redémarrer ou le remplacer automatiquement ; il peut également démonter les conteneurs qui ne répondent pas à vos exigences en matière de contrôle sanitaire.
- Qu'est-ce que Red Hat Red Hat OpenShift Container Platform?
Red Hat OpenShift Container Platform est une plateforme permettant d'automatiser le déploiement et la gestion des applications conteneurisées. Alors que Red Hat OpenShift Container Platform utilise Kubernetes pour orchestrer des conteneurs, Kubernetes ne gère pas les exigences de niveau plateforme ni les processus de déploiement. Par conséquent, Red Hat OpenShift Container Platform améliore la capacité de Kubernetes en fournissant des outils et des processus de gestion de plateforme.
Pour plus d'informations, voir Red Hat OpenShift Container Platform
.